[Pgsql-ayuda] Llamar una funcion

Alfonso Andaur L. postgresql@creasoluciones.cl
Fri, 1 Aug 2003 17:23:11 -0400


Otra forma para instalar el mismo lenguaje:

- Ingresar al servidor como usuario postgres
- ejecutar el siguiente comando:

       createlang  -d  <nombre_base>  plpgsql

donde <nombre_base> es el nombre de la base de datos a la cual se desea
instalar el lenguaje.

Adem=E1s, si deseas que el lenguaje se instale autom=E1ticamente cada vez=
 que
crees una nueva base de datos, lo puedes instalar en la base "template1".

Alfonso Andaur L.
Crea Soluciones de Ingenier=EDa Ltda.
"Creando soluciones de confianza"

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


> 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=F1oz" <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 | postgre=
s
> >
> > este es el resultado en mi Linux RedHat 8
> >
> > 1. Crear la funci=F3n que se encargar=E1 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=F3n handler y dar de alta el lenguaje
> >
> > DELETE FROM pg_language WHERE lanname=3D'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=FAn
> > 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) pe=
ro
no
> > me
> > > salia nada pues me faltaba la parte final :
> > > .. as foot (a date).
> > >
> > > Adem=E1s como tu bien decias s=F3lo me devolvia una fila pero cuand=
o
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=E9s 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 >=3D $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=E9n funci=
ona
> pero
> > > > retorna una cosa distinta (s=F3lo una tupla, y probablemente quie=
res
> > > > varias).
> > > >
> > > > > Como puedo llamar esta funci=F3n 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=F3n de la =
tabla
> > > > ventas.  En mi caso,
> > > >
> > > > alvh=3D> \d ventas
> > > >      Table "public.ventas"
> > > >    Column    | Type | Modifiers
> > > >  ------------+------+-----------
> > > >  fecha_venta | date |
> > > >
> > > > --
> > > > Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
> > > > "Escucha y olvidar=E1s; ve y recordar=E1s; haz y entender=E1s" (C=
onfucio)
> > > > _______________________________________________
> > > > 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
> >
>
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda@tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda