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

PL/SQL Oracle Discussion :

Problème dans la création d'un trigger


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Problème dans la création d'un trigger
    Bonjour,
    j ai un probleme au niveau de la creation d un trigger : voila un simple trigger =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE OR REPLACE TRIGGER r1 
    after INSERT ON employe 
    BEGIN                
    raise_application_error(-20001,'This was a successful insert');
     END;
    lorsque j au tape dans le terminal SQL> start table.sql
    il m affiche "trigger created with compilation errors"

    est ce que vous pouvez m aider

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    exécute après la création du trigger
    SHOW ERROR;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    voila :
    SQL> show error;
    Errors for TRIGGER R1:

    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    321/2 PLS-00111: end-of-file in comment

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Avez vous mis un slash pour exécuter la commande de création du trigger dans votre fichier .sql ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE OR REPLACE TRIGGER r1 
    after INSERT ON employe 
    BEGIN                
      raise_application_error(-20001,'This was a successful insert');
    END;
    /

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    non , mais j ai essye de mettre maintenant et il fonction tres bien merci,
    donc apres chaque creation de trigger on doit mettre un slash / ??

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par khaledinformaticien Voir le message
    non , mais j ai essye de mettre maintenant et il fonction tres bien merci,
    donc apres chaque creation de trigger on doit mettre un slash / ??
    Salut,

    Normalement, lorsque que tu crés un objet BD (Procédure, Fonction, trigger, package) tu devrais toujours mettres un "/" à la fin de ton bloc de création.
    Le "/" doit se trouver une ligne en dessous du END; et au début de la ligne.

    Il est aussi important de le mettre après un bloc d'instruction DECLARE BEGIN END;
    Le "/" va agir un peu comme un COMMIT après une commande INSERT ou UPDATE. Il confirme la fin de ton bloc d'instruction.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    parfait!!! merci beaucoup ,
    maintenant j ai un autre probleme dans un autre trigger voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create trigger r6
    before insert on Zone
    for each row
    BEGIN
        if(NOT EXISTS(select CodeEmploye from Employe 
                        where CodeEmploye = :NEW.ChefZone AND Service = 'Serveillance')) then 
                   raise_application_error (-20004, 'le chef de la zone doit etre un surveillant');
        end if;
    END;
    /
    il m affiche l erreur suivant :
    PL/SQL: Statement ignored
    2/12 PLS-00204: function or pseudo-column 'EXISTS' may be used inside
    a SQL statement only

  8. #8
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    C'est le temps de laisser tomber l'écriture du code PL/SQL pour réviser les bases du langage avec l'aide d'un tutoriel.

  9. #9
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par khaledinformaticien Voir le message
    parfait!!! merci beaucoup ,
    maintenant j ai un autre probleme dans un autre trigger voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create trigger r6
    before insert on Zone
    for each row
    BEGIN
        if(NOT EXISTS(select CodeEmploye from Employe 
                        where CodeEmploye = :NEW.ChefZone AND Service = 'Serveillance')) then 
                   raise_application_error (-20004, 'le chef de la zone doit etre un surveillant');
        end if;
    END;
    /
    il m affiche l erreur suivant :
    PL/SQL: Statement ignored
    2/12 PLS-00204: function or pseudo-column 'EXISTS' may be used inside
    a SQL statement only
    Autrement dit : ne pas mélanger SQL et PL/SQL...

    EXISTS est une fonction SQL.
    Elle ne peut être employée directement dans une condition PL/SQL.

Discussions similaires

  1. problème dans la création d'une requête
    Par LeCogiteur dans le forum Langage SQL
    Réponses: 0
    Dernier message: 25/02/2008, 00h43
  2. Réponses: 2
    Dernier message: 10/12/2007, 18h47
  3. Réponses: 24
    Dernier message: 30/05/2007, 13h53
  4. Réponses: 1
    Dernier message: 23/05/2007, 18h30
  5. [Eclipse 3.0] [Tomcat] problème dans la création du .war
    Par lipao17 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/03/2005, 13h45

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