| 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: | Whole Thread | Raw Message | 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 |