From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Leonel Fuentes Marrero <lfmarrero(at)uci(dot)cu> |
Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Problema para construir una funcion dinamicamente |
Date: | 2012-02-08 20:24:38 |
Message-ID: | 1328732316-sup-1071@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Excerpts from Leonel Fuentes Marrero's message of mié feb 08 16:45:14 -0300 2012:
> Vale, gracias a todos por la ayuda y saludos para los que conosco y me conocen, terminé haciendolo de una forma que no se si será la más optima pero funciona y aquí va...
Saludos :-)
> CREATE OR REPLACE FUNCTION check_table_schema(_schema text)
> RETURNS void AS
> $BODY$
> begin
> ------------------------------------------------------------------------
> execute 'CREATE OR REPLACE FUNCTION provisional(_schema text)
> RETURNS void AS ' || '$' || 'BODY' || '$' || '
> declare
> -- variables
> begin
> -- ....
> end;
> ' || '$' || 'BODY' || '$' || '
No entiendo para qué haces esto. La gracia de los delimitadores de $ es
que puedes usar cualquiera para no tener que enredarte con las comillas
y concatenación. Si usaste $BODY$ en la función check_table_schema,
puedes usar cualquier otra cosa para la función provisional; por ej. las
tres líneas de arriba pueden quedar así:
execute 'CREATE OR REPLACE FUNCTION provisional(_schema text)
RETURNS void AS $provisional$
declare
Eso te ahora comillas y por lo tanto es mucho más legible.
Por ejemplo mira esta función:
http://alvherre.livejournal.com/4404.html
Si te fijas, estoy usando delimitadores $f$ y $ff$ además de la comilla '
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
From | Date | Subject | |
---|---|---|---|
Next Message | A J | 2012-02-08 22:20:11 | RE: Agotamiento del Espacio en Disco al Ejecutar Conulta |
Previous Message | Leonel Fuentes Marrero | 2012-02-08 19:45:14 | Re: Problema para construir una funcion dinamicamente |