trigger sql non valide

trigger sql non valide - SQL/NoSQL - Programmation

Marsh Posté le 12-10-2010 à 10:56:44    

CREATE OR REPLACE TRIGGER "GESTION_DB"."TRIG_CD_BUR_PAYEUR_UNIQUE"  
BEFORE INSERT OR UPDATE  
ON TREGLT
REFERENCING New AS NEW Old AS OLD
FOR EACH ROW WHEN (new.cd_bur_payeur != ' ')  
  BEGIN          
    IF (select cd_bur_payeur from TBUR_PAYEUR where cd_bur_payeur=:new.cd_bur_payeur) is NULL THEN
        RAISE_APPLICATION_ERROR(-20000 , 'Code Bureau Payeur inexistant');
    END IF;
   END;
END;
/
 
Warning: compiled but with compilation errors
END;
Error at line 11
ORA-00900: instruction SQL non valide
 
Pourquoi l'instruction sql est invalide??????????????????????

Reply

Marsh Posté le 12-10-2010 à 10:56:44   

Reply

Marsh Posté le 12-10-2010 à 14:38:19    

T'as un END; de trop à la fin non?

 

Une fois ca corrigé, ca ne marchera probablement toujours pas parce que tu peux pas utiliser une requete comme ca directement dans le code. Enfin je crois. Si c'est bien le cas il te faudra un truc du genre:

CREATE OR REPLACE TRIGGER "GESTION_DB"."TRIG_CD_BUR_PAYEUR_UNIQUE"  
BEFORE INSERT OR UPDATE  
ON TREGLT
REFERENCING New AS NEW Old AS OLD
FOR EACH ROW WHEN (new.cd_bur_payeur != ' ')
DECLARE
  v_nb_bureaux NUMBER;
BEGIN
  select count(cd_bur_payeur) into v_nb_bureaux from TBUR_PAYEUR where cd_bur_payeur=:new.cd_bur_payeur;
  IF v_nb_bureaux=0 THEN
    RAISE_APPLICATION_ERROR(-20000 , 'Code Bureau Payeur inexistant');
  END IF;
END;
/


Et ya surement plus propre, enfin tu vois l'idée.

 

Edit: pourquoi ne pas utiliser une clé étrangère tout simplement plutot que te faire chier avec un trigger?


Message édité par lasnoufle le 12-10-2010 à 14:39:19

---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 12-10-2010 à 15:25:02    

@puisqueturepondspas: Tu sais que ça n'a jamais tué personne de dire bonjour, s'il vous plait, merci, au revoir?
C'est pas la première fois que tu arrives ici, poste un bout de code sans dire un mot et t'attends à une résolution du problème.  
Un peu de politesse et de savoir vivre svp :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

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