From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Alfonso Lopez Gemar <alfonso_lg(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Función recursiva |
Date: | 2011-02-14 14:42:18 |
Message-ID: | 1297694491-sup-7694@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Excerpts from Alfonso Lopez Gemar's message of lun feb 14 07:44:40 -0300 2011:
>
> Hola a todos;
> Tengo un problema, quiero hacer una función recursiva en porsgreSQL utilizando el lenguaje plpythonu
> El tema en cuestión es que no se como hacer para uqe las funciones que tengo declaradas en mi esquema public sean accesibles/existan para la función
> Esta es mi función:
> CREATE OR REPLACE FUNCTION recursiva(numero integer DEFAULT 0) RETURNS integer AS$BODY$if numero>0: aux = numero -1 plan_id = plpy.prepare("SELECT recursiva( $1 )", [ "integer"]) rv2 = plpy.execute(plan_id, [aux])
> return rv2[0][0]+numeroelse: return numero$BODY$ LANGUAGE plpythonu VOLATILE COST 100;ALTER FUNCTION recursiva(integer) OWNER TO pg_user;
>
> Al intentar hacer el "SELECT recursiva..." no va y tampoco funciona si la fincion es así:
> CREATE OR REPLACE FUNCTION recursiva(numero integer DEFAULT 0) RETURNS integer AS$BODY$if numero>0: return numero + recursiva(numero-1)else: return numero$BODY$ LANGUAGE plpythonu VOLATILE COST 100;ALTER FUNCTION recursiva(integer) OWNER TO pg_user;
>
> Esta ultima forma es primera que se me ocurrio.
La primera forma "debería" funcionar. ¿Qué error te dio?
La segunda forma no funciona, no te gastes intentándolo.
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2011-02-14 17:03:52 | Re: consulta de fechas da error |
Previous Message | Rodriguez Fernando | 2011-02-14 14:11:40 | Re: Postgres y Versiones. |