Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1166 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [oracle/pl/sql] problème trigger

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[oracle/pl/sql] problème trigger

n°1270690
Zeurkk
Posté le 20-12-2005 à 14:04:36  profilanswer
 

Bonjour à tous
Je voudrais creer un trigger mais je n'y arrive pas, j'ai une erreur :(
 
Voici mon trigger :

Citation :

create or replace trigger annulation
after delete on commandes
for each row
declare
     cursor c is select * from :old.lgnscom;
     m c%rowtype;
begin
     open c;
     loop
          fetch c into m;
          exit when c%notfound;
          update medics set stock=stock+m.qte when m.idmed=idmed;
     end loop;
     close c;
end;
/


 
Dans ma table commandes, il y a une nested table (lgnscom) qui regroupa la liste des medicaments et la quantité (idmed et qte)
Dans la table medics, il y a un idmed et un stock
 
Mon trigger doit mettre a jour les stock dans la table medics a chaque suppression d'une commande dans la table commandes
 
Quand je compile mon trigger ça me met :
Déclancheur creer avec erreur de compilation
 
L'erreur est la PLS-00103 à la ligne 2, hors je ne vois pas d'erreur e la ligne 2
Symbole "" rencontré à la place d'un des symboles suivant:
<an identifier> <a double-quoted delimited-identifier>


Message édité par Zeurkk le 20-12-2005 à 14:14:19
mood
Publicité
Posté le 20-12-2005 à 14:04:36  profilanswer
 

n°1270702
Zeurkk
Posté le 20-12-2005 à 14:13:44  profilanswer
 

je pense en fait que l'erreur viens du select que je fait sur :old.lgnscom
 
on ne peut pas utiliser de :old et :new dans la section declare ?
on ne peut pas parcourir un nested table comme cela ?


Message édité par Zeurkk le 20-12-2005 à 14:14:05
n°1274420
vlad'
Posté le 29-12-2005 à 14:04:25  profilanswer
 

héhé :p
 
j'ai eu le meme pb que toi
on ne peut pas acceder à :old dans declare
 
mais les NESTED TABLES sont indicées par des variables numériques et peuvent être lues et écrites directement depuis les colonnes d'une table
 
SQL> declare
  2    -- collection de type nested table
  3    TYPE TYP_NES_TAB is table of varchar2(100) ;
  4    -- collection de type index by  
  5    TYPE TYP_IND_TAB is table of number index by binary_integer ;
  6    tab1 TYP_NES_TAB ;
  7    tab2 TYP_IND_TAB ;
  8  Begin
  9    tab1 := TYP_NES_TAB('Lundi','Mardi','Mercredi','Jeudi' ) ;
 10    for i in 1..10 loop
 11       tab2(i):= i ;
 12    end loop ;
 13  End;
 14  /
 
Procédure PL/SQL terminée avec succès.
 
(tiré de developpez.com)


Message édité par vlad' le 29-12-2005 à 14:04:42

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [oracle/pl/sql] problème trigger

 

Sujets relatifs
[XSLT]probleme avec les ':'probleme de guillemet je pense ....
Probleme de mainConstructeur destructeur probleme avec heritage
problème pour passer un flux en argument d'une fonction[VBA EXCEL 03] Probleme de mise en forme auto du graph
Problème execution VB Script en ASPProblème d'écriture dans un fichier
VB 6 / Probleme EOF[Oracle - PL/SQL] Problème de trigger et de table inaccessible
Plus de sujets relatifs à : [oracle/pl/sql] problème trigger


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR