RE: llamadas dinamicas

From: Gerardo Gonzalez <gergonvel(at)hotmail(dot)com>
To: Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>
Cc: Ayuda Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: llamadas dinamicas
Date: 2008-06-27 17:36:56
Message-ID: BLU103-W485BF64F5CED3C925CF836A6A20@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


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(at)hotmail(dot)com
> To: jurasec(at)gmail(dot)com
> CC: pgsql-es-ayuda(at)postgresql(dot)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(at)gmail(dot)com
>> To: gergonvel(at)hotmail(dot)com
>> Subject: Re: [pgsql-es-ayuda] llamadas dinamicas
>> CC: pgsql-es-ayuda(at)postgresql(dot)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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Calabaza 2008-06-27 18:20:37 Re: llamadas dinamicas
Previous Message Cesar Erices 2008-06-27 17:04:20 uso transacciones en plpgsql