[pgsql-ayuda] Procedimientos Almacenados

Ricardo Arratia Joglar rarratia@udelmar.cl
Wed, 11 Apr 2001 14:23:35 -0400


pero no me queda claro como devuelve la función un set de datos como lo
hacen los procedimientos almacenados en otros motores.
Ricardo Arratia
----- Original Message -----
From: José David Martínez Cuevas <davma@planet.com.mx>
To: <pgsql-ayuda@tlali.iztacala.unam.mx>
Sent: Wednesday, April 11, 2001 10:49 AM
Subject: Re: [pgsql-ayuda] Procedimientos Almacenados


> mmm....
> No estoy totalmente de acuerdo.
> No se bien que diferencia hay entre un procedimiento almacenado y
funciones
> descritas en la base de datos
>
> Aqui les mando un ejemplo de 'procedimiento almacenado' escrito en
plpgsql,
> que es el API procedural itnerna
> de postgres.
>
> Si hay alguna duda con respecto al procedimiento, escribanme. Las
variables de
> contexto $1 y $2 hacen referencia a los
> parametros de la funcion. Eso esta documentado en el manual de plpgsql.
>
> Saludos !!!!
>
> NOTA: Ojo, este procedimiento es recursivo
>
> *************************
> DROP FUNCTION bloquea_perfil_cascada(int4,int4);
> CREATE FUNCTION bloquea_perfil_cascada(int4,int4) returns int4 as '
>    DECLARE
>         registro RECORD;
>         ret int4 := 1;
>     BEGIN
>         IF $2 > 5 THEN RETURN 0;
>         ELSE
>            UPDATE perfil SET estatus_perfil = \'i\' WHERE id_perfil = $1
AND
> id_nivel_usuario = $2;
>            FOR registro IN SELECT id_perfil,id_nivel_usuario from perfil
WHERE
> idpadre_usuario = $1 AND id_nivel_usuario = ($2 + 1)  LOOP
>                ret := ret +
> bloquea_perfil_cascada(registro.id_perfil,registro.id_nivel_usuario);
>            END LOOP;
>         END IF;
>         RETURN ret;
>     END;
> '
> LANGUAGE 'plpgsql';
>


--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe pgsql-ayuda