[resolu]trigger ?

trigger ? [resolu] - SQL/NoSQL - Programmation

Marsh Posté le 03-04-2006 à 13:09:48    

salut,
 
Je m'entraine à l'utilisation de trigger;
donc j'ai essayer d'en faire un

Code :
  1. create or replace trigger trigtd
  2. before insert or update on client
  3. for each row
  4. declare
  5. c client.numcl%type;
  6. nom_conjoint client.nom%type;
  7. pbcp exception;
  8. pbconjoint1 exception;
  9. pbconjoint2 exception;
  10. begin
  11. if  :new.cp not in ('01','07','26','38','42','69','73','74') then
  12. raise pbcp;
  13. end if;
  14. if :new.numconjoint is not null then
  15. select count(*) into c from client where numcl= :new.numconjoint;
  16. if c=0 then
  17. raise pbconjoint1;
  18. end if;
  19. select nom from client where numcl= :new.numconjoint;
  20. if nom_conjoint<>:new.nom then
  21. raise pbconjoint2;
  22. end if;
  23. end if;
  24. exception
  25. when pbcp then raise_application_error(-20501,'pas de la region');
  26. when pbcp then raise_application_error(-20502,'pas de numclient');
  27. when pbcp then raise_application_error(-20503,'nom du conjoint different');
  28. end;
  29. /


 
mais j'obtiens l'erreur suivante:

Citation :


0/0      PL/SQL: Compilation unit analysis terminated
21/1     PLS-00428: une clause INTO est attendue dans cette instruction
         SELECT
 
31/1     PLS-00483: l'exception 'PBCP' peut apparaître dans au plus un
         module d'exception de ce bloc


 
et je ne vois pas d'ou cela peut venir, je recupere bien le nombre de ligne de ma table avec le into c .
Mais je pije pas pourquoi sa bloque dessus;
 
Merci.


Message édité par donny3 le 03-04-2006 à 14:40:43
Reply

Marsh Posté le 03-04-2006 à 13:09:48   

Reply

Marsh Posté le 03-04-2006 à 13:32:32    

j'ai resolu la 1ere erreur je n'ai plus que celle la

Citation :


0/0      PL/SQL: Compilation unit analysis terminated
31/1     PLS-00483: l'exception 'PBCP' peut apparaître dans au plus un
         module d'exception de ce bloc

Reply

Marsh Posté le 03-04-2006 à 13:46:27    

pourquoi tu as 3 ligne de traintement de l'exceptione ?  
#
when pbcp then raise_application_error(-20501,'pas de la region');
#
when pbcp then raise_application_error(-20502,'pas de numclient');
#
when pbcp then raise_application_error(-20503,'nom du conjoint different');
 


---------------

Reply

Marsh Posté le 03-04-2006 à 14:40:09    

je viens de voir a l 'instant
grosse erreur d'inatention
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed