Skip site navigation (1) Skip section navigation (2)

RE: llamadas dinamicas

From: Gerardo Gonzalez <gergonvel(at)hotmail(dot)com>
To: <lennin(dot)caro(at)yahoo(dot)com>, 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 19:43:17
Message-ID: BLU103-W519A60446612D8D77805C9A6A20@phx.gbl (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
La funcion desde consola me funciona si la llamo

    select * from p_gen_interes('CL001',1,'gerardo');

y en duro dentro la funcion p_gen_cargakihgo:

    a:= p_gen_interes('CL001',1,'gerardo');

me funciona tb.
Pero la idea es generarla en forma dinamica:
por poder ejecutar una variedad de funciones
Ojo la funcion tb retorna un dato que es Money.

Atte.,
Gerardo.

________________________________
Date: Fri, 27 Jun 2008 12:37:08 -0700
From: lennin(dot)caro(at)yahoo(dot)com
Subject: RE: [pgsql-es-ayuda] llamadas dinamicas
To: jurasec(at)gmail(dot)com; gergonvel(at)hotmail(dot)com
CC: pgsql-es-ayuda(at)postgresql(dot)org

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


--- On Fri, 6/27/08, Gerardo Gonzalez  wrote:
From: Gerardo Gonzalez 
Subject: RE: [pgsql-es-ayuda] llamadas dinamicas
To: "Julio Cesar Rodriguez Dominguez" 
Cc: "Ayuda Postgres" 
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(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--
TIP 7: no olvides aumentar la configuración del "free space map"





_________________________________________________________________
Ingresa ya a MSN Deportes y entérate de las últimas novedades del mundo deportivo.
http://msn.foxsports.com/fslasc/

In response to

pgsql-es-ayuda by date

Next:From: Lennin CaroDate: 2008-06-27 19:44:52
Subject: Re: Postgres y jdbc
Previous:From: Lennin CaroDate: 2008-06-27 19:37:08
Subject: RE: llamadas dinamicas

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group