Thread: HI! Problems with cursors into triggers

HI! Problems with cursors into triggers

From
Andrés Mauricio Marín Restrepo
Date:
HELLO!

I'm making one trigger (plpgsql) and in the function i use CURSOR for to

bring an elements and to take them to a variable but no me it does not
work, WHY?????????????

The script is:

DROP TRIGGER miTrig on otro;
DROP FUNCTION miFunc();
DROP TABLE otro;
DROP TABLE cual;

CREATE TABLE otro (
    cuenta    integer;
);

CREATE TABLE  cual (
    cuenta1 integer;
    cuenta2 integer;
);

CREATE FUNCTION miFunc () RETURNS OPAQUE AS '
   DECLARE
      Cuenta_t INT4;
   BEGIN
      begin work;
      declare c_Cuenta CURSOR FOR SELECT * FROM otro;
      FETCH forward 1 in c_Cuenta INTO :Cuenta_t;
      CLOSE c_Cuenta;
      commit;
      INSERT INTO cual VALUES (Cuenta_t,NEW.cuenta);
      RETURN NEW;
   END; '

LANGUAGE 'plpgsql';

CREATE TRIGGER miTrig AFTER INSERT ON otro FOR EACH ROW EXECUTE
PROCEDURE miFunc();


Help me please!!!!!!!!!!!!!!!

Thanks

Mauricio Marín
Colombia

Attachment

Re: HI! Problems with cursors into triggers

From
"Robert B. Easter"
Date:
On Wed, 28 Jun 2000, Andr�s Mauricio Mar�n Restrepo wrote:
> 
> HELLO!
> 
> I'm making one trigger (plpgsql) and in the function i use CURSOR for to
> 
> bring an elements and to take them to a variable but no me it does not
> work, WHY?????????????
> 
> The script is:
> 
> DROP TRIGGER miTrig on otro;
> DROP FUNCTION miFunc();
> DROP TABLE otro;
> DROP TABLE cual;
> 
> CREATE TABLE otro (
>     cuenta    integer;
> );
> 
> CREATE TABLE  cual (
>     cuenta1 integer;
>     cuenta2 integer;
> );
> 
> CREATE FUNCTION miFunc () RETURNS OPAQUE AS '
>    DECLARE
>       Cuenta_t INT4;
>    BEGIN
>       begin work;

Can't have nested transactions. Can't use BEGIN/COMMIT within a trigger.

-- 
Robert B. Easter