[Pgsql-ayuda] Llamar una funcion

Patricio Muñoz pmunoz@cmet.net
Fri, 1 Aug 2003 16:57:27 -0400


se me olvidaba que una vez instalado y ejecutar el sql

select * from pg_language;

 lanname  | lanispl | lanpltrusted | lanplcallfoid | lancompiler
----------+---------+--------------+---------------+-------------
 internal | f       | f            |             0 | n/a
 C        | f       | f            |             0 | /bin/cc
 sql      | f       | f            |             0 | postgres
 plpgsql  | t       | t            |         33654 | PL/pgSQL

si te fijas en la ultima tupla aparece el lenguaje plpgsql instalo...

suerte

----- Original Message ----- 
From: "Patricio Muñoz" <pmunoz@cmet.net>
To: "Sergio Valdes" <voig_pgsql@entelchile.net>;
<pgsql-ayuda@tlali.iztacala.unam.mx>
Sent: Friday, August 01, 2003 4:50 PM
Subject: Re: [Pgsql-ayuda] Llamar una funcion


> No tienes instalado el soporte para ese lenguaje:
>
> Para saber que lenguaje tienes instalado haz lo sgte
>
>  select * from pg_languages;
>
> lanname  | lanispl | lanpltrusted | lanplcallfoid | lancompiler
> ----------+---------+--------------+---------------+-------------
>  internal  | f          | f                |             0 | n/a
>  C          | f          | f                |             0 | /bin/cc
>  sql        | f          | f                |             0 | postgres
>
> este es el resultado en mi Linux RedHat 8
>
> 1. Crear la función que se encargará de procesar el lenguaje:
>
> DROP FUNCTION plpgsql_call_handler ();
> CREATE FUNCTION plpgsql_call_handler () RETURNS OPAQUE
>     AS '/usr/lib/pgsql/plpgsql.so' LANGUAGE 'C';
>
> 2 .Crear la función handler y dar de alta el lenguaje
>
> DELETE FROM pg_language WHERE lanname='plpgsql';
> CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER
>     plpgsql_call_handler LANCOMPILER 'PL/pgSQL';
>
> ojo que la libreria de plpgsql.so esta en '/usr/lib/pgsql/plpgsql.so'
según
> mi sistema, tal vez en tu sistema este en otro lugar.
> Puedes buscarlo con el comando locate libpgsql.so
>
> saludos
>
> ----- Original Message ----- 
> From: "Sergio Valdes" <voig_pgsql@entelchile.net>
> To: <pgsql-ayuda@tlali.iztacala.unam.mx>
> Sent: Friday, August 01, 2003 4:15 PM
> Subject: Re: [Pgsql-ayuda] Llamar una funcion
>
>
> > Gracias Alvaro por tu ayuda. Lo del Select ya lo habia enontrado mirando
> > ejemplos de pl/pgSQL (que distraido soy, siempre estuvieron ahi) pero no
> me
> > salia nada pues me faltaba la parte final :
> > .. as foot (a date).
> >
> > Además como tu bien decias sólo me devolvia una fila pero cuando agregue
> > "setof" ya me salieron todas
> >
> > Nuevamente gracias, y ahora solo una ultima duda, por que en la clausula
> > LANGUAGE no puedo poner "plpqsql" , pues me da un error diciendo:
language
> > "plpgsql" does not exist.
> >
> >
> > Sergio Valdés H.
> > [Pgsql-ayuda]
> > ----- Original Message ----- 
> > From: "Alvaro Herrera" <alvherre@dcc.uchile.cl>
> > To: "Sergio Valdes" <voig_pgsql@entelchile.net>
> > Cc: <pgsql-ayuda@tlali.iztacala.unam.mx>
> > Sent: Thursday, July 31, 2003 11:15 PM
> > Subject: Re: [Pgsql-ayuda] Llamar una funcion
> >
> >
> > > On Thu, Jul 31, 2003 at 01:30:07PM -0400, Sergio Valdes wrote:
> > >
> > > Sergio,
> > >
> > >  CREATE FUNCTION "func01" (date)
> > >          RETURNS setof record AS
> > >         'select * from ventas where fecha_venta >= $1'
> > >   LANGUAGE "sql";
> > >
> > > > Mis dudas son las siguientes:
> > > > Esta bien que el tipo de datos del RETURNS sea record?
> > >
> > > No, probablemente debe ser SETOF RECORD.  Lo otro también funciona
pero
> > > retorna una cosa distinta (sólo una tupla, y probablemente quieres
> > > varias).
> > >
> > > > Como puedo llamar esta función desde Php 4.3.2?
> > >
> > > Como desde cualquier otro sitio:
> > >
> > > select * from func01('2003-02-01') as foo(a date);
> > >
> > > donde la parte (a date) debe coincidir con la definición de la tabla
> > > ventas.  En mi caso,
> > >
> > > alvh=> \d ventas
> > >      Table "public.ventas"
> > >    Column    | Type | Modifiers
> > >  ------------+------+-----------
> > >  fecha_venta | date |
> > >
> > > -- 
> > > Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
> > > "Escucha y olvidarás; ve y recordarás; haz y entenderás" (Confucio)
> > > _______________________________________________
> > > Pgsql-ayuda mailing list
> > > Pgsql-ayuda@tlali.iztacala.unam.mx
> > > http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
> >
> > _______________________________________________
> > Pgsql-ayuda mailing list
> > Pgsql-ayuda@tlali.iztacala.unam.mx
> > http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
> >
>
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda@tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
>