From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: insert en Function |
Date: | 2006-04-26 19:00:54 |
Message-ID: | 20060426190054.GG2302@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Nicolás Domínguez Florit escribió:
> desde dentro de la funcion cambie:
>
> INSERT INTO "Tabla" SELECT OLD.*;
>
> por
>
> temporal:='INSERT INTO esquema.' || Tabla || 'SELECT OLD.*;';
> EXECUTE temporal;
>
> y tengo el problema de que no me reconoce OLD y me tira:
> ERROR: syntax error at or near "OLD" at character 40
>
> Se te (les) ocurre como lo puedo acomodar?
No se. Trata de hacer que el OLD.* se expanda en la funcion; obviamente
no funciona en el EXECUTE.
temporal:='INSERT INTO esquema.' || Tabla || 'SELECT ' || OLD.* ;
pero en realidad yo no esperaria que eso funcionara limpiamente. Quizas
temporal:='INSERT INTO esquema.' || Tabla || 'SELECT ' || OLD || '.*' ;
En todo caso activa log_statement y mira en el log la sentencia que se
esta ejecutando. Cualquier cosa que no te acepte el parser directamente
en psql no funcionara con EXECUTE.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Nicolás Domínguez Florit | 2006-04-26 19:10:36 | Re: insert en Function |
Previous Message | Alvaro Herrera | 2006-04-26 18:57:34 | Re: Nuevo Tokkens en PostgreSQL |