From: | Patricio Muñoz <pmunoz(at)cmet(dot)net> |
---|---|
To: | "Sergio Valdes" <voig_pgsql(at)entelchile(dot)net>, <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx> |
Subject: | Re: [Pgsql-ayuda] Llamar una funcion |
Date: | 2003-08-01 20:50:42 |
Message-ID: | 007e01c3586e$c0c3a540$0500a8c0@ultra.cmet.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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(at)entelchile(dot)net>
To: <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)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(at)dcc(dot)uchile(dot)cl>
> To: "Sergio Valdes" <voig_pgsql(at)entelchile(dot)net>
> Cc: <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)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(at)tlali(dot)iztacala(dot)unam(dot)mx
> > http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
>
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
>
From | Date | Subject | |
---|---|---|---|
Next Message | Patricio Muñoz | 2003-08-01 20:57:27 | Re: [Pgsql-ayuda] Llamar una funcion |
Previous Message | Sergio Valdes | 2003-08-01 20:15:04 | Re: [Pgsql-ayuda] Llamar una funcion |