From: | Pierre BOIZOT <pierre(dot)boizot(at)gmail(dot)com> |
---|---|
To: | PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | une autre histoire de triggers.... |
Date: | 2013-08-28 08:41:39 |
Message-ID: | CANxSh5zh8rMgvm6NUYJSjPaZ2aMJ4d4km7eV4kQZrnr99rA2aw@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Bonjour,
Dans une phase exploratoire de migration d'oracle vers postgresql , je me
heurte à un problème de migration de certain trigger.
Le code du trigger oracle :
create or replace
trigger "SIBMIG"."VAL_PRO_DELETE" BEFORE
DELETE ON "VALIDATEUR_PROJET"
BEGIN
declare
v_tem_sel_ok number(1) := 0;
begin
-- code ....
end;
END;
a
été traduit par
CREATE OR REPLACE FUNCTION trigger_fct_val_pro_delete () RETURNS trigger AS
$BODY$
BEGIN
declare
v_tem_sel_ok numeric(1) := 0;
begin
--- code
end;
RETURN NEW;
END
$BODY$
LANGUAGE 'plpgsql';
CREATE TRIGGER val_pro_delete
BEFORE STATEMENT DELETE ON validateur_projet FOR EACH STATEMENT
EXECUTE PROCEDURE trigger_fct_val_pro_delete();
cette syntaxe n'est pas acceptée, je ne vois pas de référence a BEFORE
STATEMENT dans la documentation
postgresql<http://docs.postgresqlfr.org/9.3/sql-createtrigger.html>sur
la syntaxe du create trigger.
Pourriez vous me confirmer que la bonne syntaxe est :
CREATE TRIGGER val_pro_delete
BEFORE DELETE ON validateur_projet FOR EACH STATEMENT
EXECUTE PROCEDURE trigger_fct_val_pro_delete();
je déclarerai alors une issue sur ora2pg.
A+
Pierre
Pierre.
G+ <https://plus.google.com/u/0/107377830070954284209/about>
From | Date | Subject | |
---|---|---|---|
Next Message | Guillaume Lelarge | 2013-08-28 09:21:41 | Re: une autre histoire de triggers.... |
Previous Message | Dimitri Fontaine | 2013-08-27 19:59:02 | Re: PostgreSQL9.1 trigger avec arguments |