Friday, June 27, 2008

RE: [pgsql-es-ayuda] llamadas dinamicas

si usas p_gen_interes('CL001',1,'gerardo') desde una consola te funciona perfectamente?


--- On Fri, 6/27/08, Gerardo Gonzalez <gergonvel@hotmail.com> wrote:
From: Gerardo Gonzalez <gergonvel@hotmail.com>
Subject: RE: [pgsql-es-ayuda] llamadas dinamicas
To: "Julio Cesar Rodriguez Dominguez" <jurasec@gmail.com>
Cc: "Ayuda Postgres" <pgsql-es-ayuda@postgresql.org>
Date: Friday, June 27, 2008, 5:36 PM

Señores me pueden ayudar?:

Lo que estoy haciendo es:

declare
c_par_cobro refcursor;
r_par_cobro record;
vquery varchar(100);
inp_age_id char(05);
inp_cli_folio int;
inp_usu_id varchar(10);
Begin
....
....
fetch c_par_cobro into r_par_cobro;
while found loop

v_query:= r_par_cobro.cob_prc_almacenado || '(' ||
quote_literal(inp_age_id) ||

','||inp_cli_folio||','||quote_literal(inp_usu_id)||')';

raise notice '%', v_query;
execute v_query into v_par_cobro;
end loop;
close c_par_cobro;
.....
....
end

con esto obtengo la siguiente cadena:

p_gen_interes('CL001',1,'gerardo')

la cual la executo con:
execute v_query into v_par_cobro;

pero lo que sucede es que me arroja el siguiente error:

ERROR: error de sintaxis en o cerca de «p_gen_interes» at character 1
QUERY: p_gen_interes('CL001',1,'gerardo')
CONTEXT: PL/pgSQL function "p_gen_cargakihgo" line 110 at EXECUTE
statement

PD Utilizo el postgres 8.3

Muchas Gracias de antemano....
Gerardo



> From: gergonvel@hotmail.com
> To: jurasec@gmail.com
> CC: pgsql-es-ayuda@postgresql.org
> Subject: RE: [pgsql-es-ayuda] llamadas dinamicas
> Date: Wed, 11 Jun 2008 23:14:50 -0400
>
>
> Te agradezco Julio;
>
> Me surge otra duda y como sería la formacion de l execute si la funcion a
la que
> se llama devuelve un valor.
>
> Atte.,
> Gerardo
>
> ----------------------------------------
>> Date: Wed, 11 Jun 2008 20:38:24 -0500
>> From: jurasec@gmail.com
>> To: gergonvel@hotmail.com
>> Subject: Re: [pgsql-es-ayuda] llamadas dinamicas
>> CC: pgsql-es-ayuda@postgresql.org
>>
>> 2008/6/11 Gerardo Gonzalez :
>>> hola lista.. me pueden ayudar. como se puede hacer una funcion que
llame a
>>> otra funcion pero de forma dinamica., es decir, tengo una tabla q
tiene la
>>> sigte estructura: create table funciones ( orden int , funcion
varchar(25) )
>>> con los siguientes datos orden | Funcion --------------------- 1 |
funcion1
>>> 2 | funcion2 y lo que necesito es crear una funcion q pueda
ejecutar las
>>> funciones que se indican en la tabla en el ordenque se indican.
Les
>>> agredezco su ayuda. gracias. atte., Gerardo.
>>
>> Puedes usar execute dentro de un pl/pgSql, con esta puedes ir armando
>> tu llamada con la cadena que consultes de la tabla de funciones.
>>
>> Por ejemplo:
>>
>> select into cadena_funcion funcion from funciones where .... ;
>>
>> execute cadena_funcion||'('||parametro||')';
>>
>>> ________________________________
>>> Ingresa ya a MSN en Concierto y disfruta los recitales en vivo de
tus
>>> artistas favoritos. MSN en Concierto
>>
>>
>>
>> --
>> :: God bless you, every day and every night ::
>> --
>> TIP 5: ¿Has leído nuestro extenso FAQ?
>> http://www.postgresql.org/docs/faqs.FAQ.html
>
> _________________________________________________________________
> ¿Aburrido? Ingresa ya y diviertete como nunca en MSN Juegos.
> http://juegos.cl.msn.com/--
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá
leerlo

_________________________________________________________________
Ingresa ya a MSN en Concierto y disfruta los recitales en vivo de tus artistas
favoritos.
http://msninconcert.msn.com/music/archive/es-la/archive.aspx--
TIP 7: no olvides aumentar la configuración del "free space map"

No comments: