IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Oracle Discussion :

PL/SQL et point virgule


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut PL/SQL et point virgule
    Bonjour,

    je m'initie aux requêtes pl/sql en testant celles du manuel livré avec la version express.
    Quand je tente d'exécuter un bloc pl/sql dans l'interface ou dans toad, le point virgule de fin d'instruction génère une erreur: caractère non reconnu.
    Et ceci même pour un copier-coller de la requête.

    Savez vous pourquoi?

    Merci,

    Philippe

  2. #2
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pouvez-vous copier votre bloc sql, et le message d'erreur.
    Cordialement,
    Franck.

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Volontier,

    c'est un exemple tiré du manuel : 2 Day Developer Guide
    erreur: ORA-00911: caractère non valide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    -- create a temporary table
    CREATE TABLE emp_sal_log (emp_id NUMBER, log_date DATE,
    new_salary NUMBER, action VARCHAR2(50)); <==première erreur ici!
    CREATE OR REPLACE TRIGGER log_salary_increase -- create a trigger
    BEFORE UPDATE of salary ON employees FOR EACH ROW
    WHEN (OLD.salary < 8000)
    BEGIN
    INSERT INTO emp_sal_log (emp_id, log_date, new_salary, action)
    VALUES (:NEW.employee_id, SYSDATE, :NEW.salary, 'New Salary');
    END;
    /
    -- update the salary with the following UPDATE statement
    -- trigger fires for each row that is udpated
    UPDATE employees SET salary = salary * 1.01 WHERE department_id = 60;
    -- view the log table
    SELECT * FROM emp_sal_log;

  4. #4
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Ok,
    Sous sqlplus, celà devrait marcher.
    Sous TOAD, je pense qu'il faut un saut de ligne entre chaque instruction.
    Cordialement,
    Franck.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 50
    Par défaut
    Citation Envoyé par Philippe PONS Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    -- create a temporary table
    CREATE TABLE emp_sal_log (emp_id NUMBER, log_date DATE,
    new_salary NUMBER, action VARCHAR2(50)); <==première erreur ici!
    CREATE OR REPLACE TRIGGER log_salary_increase -- create a trigger
    BEFORE UPDATE of salary ON employees FOR EACH ROW
    WHEN (OLD.salary < 8000)
    BEGIN
    INSERT INTO emp_sal_log (emp_id, log_date, new_salary, action)
    VALUES (:NEW.employee_id, SYSDATE, :NEW.salary, 'New Salary');
    END;
    /
    -- update the salary with the following UPDATE statement
    -- trigger fires for each row that is udpated
    UPDATE employees SET salary = salary * 1.01 WHERE department_id = 60;
    -- view the log table
    SELECT * FROM emp_sal_log;
    Puisque c'est visiblement un script sql, utilisez la commande d'exécution de script de Toad ("Execute as script", l'icône en forme d'éclair).

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Merci, ça marche mieux effectivement.
    Philippe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Point-virgule absent à la fin de l'instruction SQL
    Par colorid dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/06/2011, 15h41
  2. Réponses: 9
    Dernier message: 28/05/2010, 14h37
  3. [ODBC] Point-virgule absent à la fin de l'instruction SQL
    Par loulitta dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/06/2008, 10h55
  4. [sql] remplacer une virgule par un point
    Par shiners300 dans le forum Oracle
    Réponses: 1
    Dernier message: 23/12/2005, 19h19
  5. [LG]Point virgule
    Par Louis-Guillaume Morand dans le forum Langage
    Réponses: 17
    Dernier message: 07/06/2003, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo