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.