[Débutant][oracle 8i]Fonction équivalant a merge avec un trigger
Bonjours tous le monde, me revoila avec mes question de base de donnée, alors après avoir découvert que mon oracle ne supportait la fonction merge :cry:, j'ai décidé de me fair ma propres fonction.
J'ai donc fait un trigger sur ma table :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
CREATE or replace TRIGGER TRIGGER_TEST_ON_INSERT
BEFORE INSERT ON ARCHIVES.dest_calendrier
FOR EACH ROW
begin
IF EXISTS (Select * from archives.DEST_CALENDRIER D where :new.dest_ferme= D.dest_ferme)
then
Delete from archives.dest_calendrier where(:new.dest_ferme= D.dest_ferme);
Insert into archives.dest_calendrier values(:new.dest_ferme, :new.dest_libelle);
else
Insert into archives.dest_calendrier values(:new.dest_ferme, :new.dest_libelle);
end; |
Donc après compilation j'ai des messages d'erreurs : Sinon sa n'aurais pas été de moi...
Code:
1 2 3 4 5 6
|
LINE/COL ERROR
-------- -----------------------------------------------------------------
8/4 PLS-00103: Symbole ";" rencontré à la place d'un des symboles
suivants :
if |
J'ai déja essayer plusieur correction (enlever les ; les dpélacer, etc...) mais sa na pas marché.
Je pense que les erreurs vienne de ma facon de fair les triggeur et de fair cohabiter if existe avec mais je ne voyais pas comment fair autrement. Merci de votre attention porté a mon sujet :)