[pgsql-ayuda] sobre procedimientos almacenados
Ing. Roberto Andrade Fonseca
randrade@abl.com.mx
Wed, 25 Apr 2001 13:08:56 -0500 (CDT)
On Wed, 25 Apr 2001, Miguel Ovando wrote:
> Gracias Roberto muy agradecido por tu ayuda.
> Otra preguntita.
> > id_puesto int REFERENCES puesto,
> REFERENCES quiere decir que este campo es llave
> foranea??
>
Si, te recomiendo echarle un ojo a la documentación de PostgreSQL.
Ejemplo de función en plpgsql, aunque podrías usar también las versiones
en Perl y Tcl:
DROP FUNCTION get_otras_respuestas(int, varchar);
CREATE FUNCTION get_otras_respuestas(int, varchar) RETURNS varchar AS '
DECLARE
otro varchar;
BEGIN
SELECT respuesta into otro FROM otras_respuestas WHERE id_asistente =
$1 AND pregunta = $2;
IF NOT FOUND THEN
RETURN ''POR DEFINIR'';
END IF;
RETURN ''<font face = times>'' || otro || ''</font>'';
END;
' LANGUAGE 'plpgsql';
DROP FUNCTION get_giro(int);
CREATE FUNCTION get_giro(int) RETURNS varchar AS '
DECLARE
otro varchar;
i record;
BEGIN
SELECT id_giro_empresa INTO i from asistente where id_asistente = $1;
IF NOT FOUND THEN
RAISE EXCEPTION ''Asistente con id % no encontrado.'', $1;
END IF;
IF ( i.id_giro_empresa = 2147483647) THEN
RETURN get_otras_respuestas($1,''GIRO_EMPRESA'' );
ELSE
SELECT descripcion INTO otro FROM giro_empresa WHERE id =
i.id_giro_empresa;
IF NOT FOUND THEN
RAISE EXCEPTION ''ID i.id_giro_empresa no existe'';
END IF;
RETURN otro;
END IF;
END;
' LANGUAGE 'plpgsql';
-----------------------------
Saludos,
Roberto Andrade Fonseca
randrade@abl.com.mx
--------- 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