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/
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... |