Re: funcion plpgsql

From: "Mario Soto" <msotocl(at)gmail(dot)com>
To: Javier Bermúdez Tito <javier_bt(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funcion plpgsql
Date: 2007-01-09 20:59:31
Message-ID: e9b17cde0701091259n6d8454earb2f641fd2ef353dd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

si el query de la funcion lo hago asi:

for qry in select b.nb_tipo as tipo, a.co_codigo as codigo, a.nb_tipo as
tp1,
a.nb_nombre as nombre, a.sq_serialcolumn as seq, a.userid
from *analogico* a, systab01 b
where
a.co_codigo = *158* and
a.co_codigo = b.sq_serialcolumn and
b.nb_tipo = *''CATALOGOS''
* order by a.nb_tipo asc
loop

funciona, pero yo necesito que los datos que estan en negrillas se los pase
como parametros de variables, para que asi la funcion me sirva para varias
tablas.

Gracias

2007/1/9, Mario Soto <msotocl(at)gmail(dot)com>:
> El problema es que la funcion no me esta tomando las variables que le
> paso como parametros, nombre de ta tabla, indice y otra variable.
>
> 2007/1/9, Mario Soto <msotocl(at)gmail(dot)com>:
> > la he reescrito asi:
> >
> > CREATE OR REPLACE FUNCTION "public"."get_rec" (varchar, integer,
> > varchar) RETURNS SETOF RECORD AS
> > '
> > DECLARE
> >
> > tabla alias for $1;
> > codigo alias for $2;
> > tipo alias for $3;
> > qry RECORD;
> > query text;
> > BEGIN
> > query:= ''select b.nb_tipo as tipo, a.co_codigo as codigo, a.nb_tipo as
tp1,
> > a.nb_nombre as nombre, a.sq_serialcolumn as seq, a.userid
> > from '' || tabla || '' a, systab01 b
> > where
> > a.co_codigo = '' || codigo || '' and
> > a.co_codigo = b.sq_serialcolumn and
> > b.nb_tipo = '''' || tipo || ''''
> > order by a.nb_tipo asc'';
> > for qry in
> > execute query
> > loop
> > return next qry;
> > end loop;
> > return;
> > END;
> >
> > ' LANGUAGE 'plpgsql' volatile called on null input security invoker;
> >
> >
> > y la ejecuto asi, pero aun nada.
> >
> >
> > select * from get_rec('public.analogico',158,'CATALOGOS')
> > AS foo(tipo varchar , seq integer );
> >
> >
> > No sera que la funcion no me esta tomando los parametros ?????
> >
> > 2007/1/9, Mario Soto <msotocl(at)gmail(dot)com>:
> > > aun asi no me funciona
> > >
> > > El 9/01/07, Javier Bermúdez Tito<javier_bt(at)hotmail(dot)com> escribió:
> > > > Me falto ponerle IN
> > > >
> > > > FOR rd_data IN SELECT s.idcsucur, s.saucnosu, s.saucdire FROM
sucursales s
> > > > WHERE s.eliminar = 0 ORDER BY s.saucnosu ASC LOOP
> > > > ...
> > > >
> > > > pruebalo
> > > >
> > > > asi podras obtener todos los datos pruebalo y acondicionalo para tu
consulta
> > > > segun tus criterios.
> > > >
> > > > CREATE OR REPLACE FUNCTION "public"."get_rec" (VARCHAR, INTEGER,
VARCHAR)
> > > > RETURNS SETOF "public"."ty_rec" AS
> > > > $body$
> > > > DECLARE
> > > > rd_data ty_rec%ROWTYPE;
> > > > BEGIN
> > > > FOR rd_data SELECT s.idcsucur, s.saucnosu, s.saucdire FROM
sucursales s
> > > > WHERE s.eliminar = 0 ORDER BY s.saucnosu ASC LOOP
> > > > RETURN NEXT rd_data;
> > > > END LOOP;
> > > > END;
> > > > $body$
> > > > LANGUAGE 'plpgsql';
> > > >
> > > > _________________________________________________________________
> > > > MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/
> > > >
> > > >
> > >
> >
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Bermúdez Tito 2007-01-09 21:14:15 Re: funcion plpgsql
Previous Message Mario Soto 2007-01-09 20:51:59 Re: funcion plpgsql