Fwd: Re: [Pgsql-ayuda] Trigger y plpgsql

From: "fernando miguel villarroel noriel" <visuallinux(at)hotmail(dot)com>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Fwd: Re: [Pgsql-ayuda] Trigger y plpgsql
Date: 2003-04-23 16:06:18
Message-ID: Law12-F87tyUC3TYH310000f66f@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola bueno pude solucionar el problema anterior efectivamente usando
create or replace function.

Ahora tengo problemas creo que al diseñar la funcion o mejor dicho al
escribirla; agradecere me confirmen como la diseño, esto debido a que bueno
estuve probando colocando un path en la seccion AS, create fuction ejem
returns opaque as '/var/lib/pgsql/data/ejem.sql'.....; bueno ejem.sql la
escribi con vi, siguiendo el formato:

begin
insert into tabla values(getpgusername(),date(now));
end;
language 'plpgsql'

Como ven esta funcion se dispara al insertar un registro en otra tabla, lo
que pasa es que estoy probando el uso de trigger y funciones, pero este
script me da los siguientes error:

ERROR: parse error at or near "/"

Bueno finalmente probe eliminando la ruta y la escribi directamente en la
seccion AS y por ahi anduvo mejor, pero no funciono, me dio los siguientes
errores:

Error: Return type mismatch in fuction returning table row at or near
"opaque"

o este otro mensaje de error:

Notice:Error ocurred while executing Pl/pgSQL function ejem at END of top
level PL block
Error:control reaches end of trigger procedure withot RETURN.

la funcion la cree asi:

create or replace function ejem() returns opaque as 'begin insert into tabla
values(getpgusername(),date())); return opaque; end;' language 'plpgsql'

Agradere mucho me ayuden, tambien lei por ahi que el error mas comun se
refiere al uso de las comillas.

Gracias y atento a vustros consejos.

Fernando Villarroel.

>From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
>To: fernando miguel villarroel noriel <visuallinux(at)hotmail(dot)com>
>CC: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>Subject: Re: [Pgsql-ayuda] Trigger y plpgsql
>Date: Mon, 21 Apr 2003 21:03:41 -0400
>
>On Mon, Apr 21, 2003 at 11:08:15PM +0000, fernando miguel villarroel noriel
>wrote:
>
> > Bueno mis problemas comienzan cuando trato de insertar un registro en
>una
> > tabla que posee un trigger (clientes); en concreto el error dice:
> >
> > fmgr_info:function 16686: cache lookup failed.
>
>Esto usualmente ocurre porque defines una funcion, creas el trigger, y
>luego borras la funcion y la vuelves a crear. En este escenario, el
>sistema deja un cache del plan del trigger basado en el OID, pero cuando
>botas la funcion y la creas de nuevo su OID cambia.
>
>La solucion mas sencilla es botar el trigger y volver a crearlo; una
>solucion mejor es usar CREATE OR REPLACE FUNCTION en lugar de DROP
>FUNCTION - CREATE FUNCTION.
>
>Creo que otra alternativa es volver a conectarte (el cache solo dura una
>sesion), pero es incomodo.
>
>--
>Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
>Al principio era UNIX, y UNIX habló y dijo: "Hello world\n".
>No dijo "Hello New Jersey\n", ni "Hello USA\n".
>_______________________________________________
>Pgsql-ayuda mailing list
>Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda

_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.yupimsn.com/

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2003-04-23 19:44:22 Re: Fwd: Re: [Pgsql-ayuda] Trigger y plpgsql
Previous Message Jose Ayala - INCALPACA TPX 2003-04-23 15:46:23 Re: [Pgsql-ayuda] Sobre postgresql y pgaccess...