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

Langage SQL Discussion :

[pl/sql] probleme trigger oracle


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut [pl/sql] probleme trigger oracle
    Bonjour
    j'ai une erreur lors de la creation de mes triggers et je n'ai pas encore trouvé la solution. Lorsque je lance mon fichier sql mes triggers sont crées avec erreurs de compilations.

    J'ai donc tapé la commande show errors ce qui me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    8/41     PLS-00049: variable de lien erronée 'VERSION.ID_FICHIER'
    9/47     PLS-00049: variable de lien erronée 'UFDP.ID_FICHIER'
    J'ai regardé cela tombe aux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    delete from Version where id_fichier=:Version.id_fichier;
    delete from UFDP where id_fichier=:UFDP.id_fichier;
    voici le code de mon trigger :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    CREATE OR REPLACE TRIGGER TrigSupprFichier
    before delete on Fichier for each row
    declare
    -- déclaration des variables de gestion d erreur
    erreur_message varchar2(50);
    erreur_data exception ;
     
    BEGIN 
            BEGIN
    	    delete from Version where id_fichier=:Version.id_fichier;
                delete from UFDP where id_fichier=:UFDP.id_fichier;
            EXCEPTION
                when no_data_found then
                begin
                erreur_message :='Erreur survenue' ;
                raise erreur_data;
                end ;
            END;
     
    EXCEPTION
        when erreur_data then
             raise_application_error(-20002,erreur_message) ;
        when others then
             raise_application_error(-100,'erreur');
    END;
    /
    Si quelqu'un aurait une idée
    Merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    - une instruction DELETE ne peut JAMAIS lever une exception NO_DATA_FOUND
    - utiliser une exception WHEN OTHERS... est très dangereuse car elle peut masquer des erreurs de conception sérieuses
    - que représentent :Version et :UFDP

    Enfin, lisez cet article si ce n'est déjà fait : http://sheikyerbouti.developpez.com/...?page=Chap6#L6

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut
    je vais modifier cela et retirer le no data found. j'avais bien lu cet article qui est fort instructif. Version et UFDP sont deux tables et je pense que mon erreur se situe ici lors de la requete que je veux effectuer

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Autre cas d'erreur "variable de lien erronée"
    J'ai effectué la migration d'une form 9i vers 6i (eh oui ! pour certains environnements pas encore à la page, on est obligé de faire ça !!!). Au cours de cette migration, les types des éléments des blocs ont pris un coup.

    Du coup, le champ blabla qui était au début de type ELEMENT TEXTE est devenu de type SON, et comme ce champ était appelé dans mon code PL/SQL (des triggers qui l'utilisaient), la compilation de ma form me donnait l'erreur :

    "Variable de lien erronée B_MON_BLOC.blabla ...etc."

    Ainsi, je conclus que cette erreur survient, entre autres, lorsque les types des éléments ne sont pas respectés (entre leur déclaration et leur utilisation).

    Bon courage !

Discussions similaires

  1. Réponses: 11
    Dernier message: 17/01/2008, 18h53
  2. [Probleme Format] Trigger Oracle 10g
    Par Salmiok dans le forum Oracle
    Réponses: 1
    Dernier message: 10/05/2007, 21h17
  3. [PL/SQL - Trigger Oracle] Données non retournées
    Par Hug0_76 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/02/2007, 23h12
  4. Probleme Trigger Oracle 9i
    Par Strit83 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 27/11/2006, 14h24
  5. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53

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