Lists: | pgsql-fr-generale |
---|
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: | Raw Message | Whole Thread | Download mbox | Resend email |
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: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
---|---|
To: | Pierre BOIZOT <pierre(dot)boizot(at)gmail(dot)com> |
Cc: | PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: une autre histoire de triggers.... |
Date: | 2013-08-28 09:21:41 |
Message-ID: | 1377681701.2072.15.camel@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
On Wed, 2013-08-28 at 10:41 +0200, Pierre BOIZOT wrote:
> 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();
>
C'est la bonne. ora2pg est erroné ici.
> je déclarerai alors une issue sur ora2pg.
>
Merci.
--
Guillaume
http://blog.guillaume.lelarge.info
http://www.dalibo.com
From: | Pierre BOIZOT <pierre(dot)boizot(at)gmail(dot)com> |
---|---|
To: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
Cc: | PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: une autre histoire de triggers.... |
Date: | 2013-08-28 10:27:39 |
Message-ID: | CANxSh5x7AzVkUyZt0sprqttPMpGpaWn13GMqFA84Li213SQVYg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg토토 결과SQL : Postg토토 |
Merci pour la confirmation.
Pierre
Pierre.
G+ <https://plus.google.com/u/0/107377830070954284209/about>
Le 28 août 2013 11:21, Guillaume Lelarge <guillaume(at)lelarge(dot)info> a écrit :
> On Wed, 2013-08-28 at 10:41 +0200, Pierre BOIZOT wrote:
> > 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();
> >
>
> C'est la bonne. ora2pg est erroné ici.
>
> > je déclarerai alors une issue sur ora2pg.
> >
>
> Merci.
>
>
> --
> Guillaume
> http://blog.guillaume.lelarge.info
> http://www.dalibo.com
>
>