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 27 28
| CREATE OR REPLACE TRIGGER TRG_TABLE_BI
BEFORE INSERT
ON TABLE --Remarque Ikebukuro : sa table de test s'appelle TABLE;
FOR EACH ROW
DECLARE
CURSOR cur_list IS
SELECT emp, name, day, salary, id,phone
FROM TABLE NATURAL JOIN OTHERTABLE
WHERE emp = :NEW.emp AND name = :NEW.name AND id = :NEW.id;
curChoice cur_list%ROWTYPE; -- Remarque Ikebukuro : déclaration d'une variable qui va stocker le résultat du curseur. Attention, dans cette variable tu auras un enregistrement à la fois, pas l'ensemble des lignes retournées par le curseur.
BEGIN
OPEN cur_list; --Remarque Ikebukuro : ouverture du curseur
LOOP
FETCH cur_list INTO curChoice; --Remarque Ikebukuro :ici tu exécutes le curseur et stockes le résultat dans la variable
-- Remarque Ikebukuro c'est ici que tu dois mettre ton test "if udi IN udi_nc" mais je ne penses pas que ça marchera avec cette syntaxe.
-- Un "if udi = udi_nc" marchera peut-être mieux; à tester :-)
EXIT WHEN cur_list%NOTFOUND; --Remarque Ikebukuro : on sort de la boucle quand le cureur ne ramène plus rien
dbms_output.put_line(curchoice.id);
dbms_output.put_line(curChoice.emp);
dbms_output.put_line(curchoice.name);
END LOOP;
CLOSE cur_list; --Remarque Ikebukuro : fermeture du curseur
END;
/ |
Partager