Funcion con IF - ELSE

From: "Alexander Quilca" <alquilca(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Funcion con IF - ELSE
Date: 2006-09-12 19:05:43
Message-ID: BAY123-DAV107B70EDDEB1BA2DA8676CC12B0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Srs. Listeros tengo la siguiente funcion.

CREATE TYPE "TP_FN_R_GESTOR" AS
(
cod_ges char(11),
nom_ges varchar(200),
rep_ges varchar(200),
des_ges varchar(200)
)

CREATE OR REPLACE FUNCTION "FN_R_GESTOR" (ptipo varchar , pcriterio varchar)
RETURNS SETOF "TP_FN_R_GESTOR" AS
$body$
DECLARE
mres "TP_FN_R_GESTOR";
BEGIN

IF (UPPER(ptipo)='T') THEN -- Trabajadores

BEGIN
FOR mres IN
select
"TRABAJADOR".cod_tra,"TRABAJADOR".cod_tra,"TRABAJADOR".cod_tra,"TRABAJADOR".cod_tra
from "TRABAJADOR"
LOOP
RETURN NEXT mres;
END LOOP;
RETURN;
END;

END IF

END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

-- SELECT * FROM "FN_R_GESTOR"('T','%')

me sale el siguiente error:
ERROR: syntax error at or near "END" at character 433

como hago para que en mi funcion pueda seleccionar con estructuras de tipo
IF THEN ELSE, en mi caso cuando "ptipo" es 'T' selecciona de la tabla
trabajadores y cuando es 'G', debo selecccionar de la tabla 'PROVEEDOR',
donde los tipos que devuelven son exatamnte lo mismo

Atte.
Alexander.
Gracias.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-09-12 19:24:12 Re: Funcion con IF - ELSE
Previous Message Alvaro Herrera 2006-09-12 19:00:54 Re: Usuario postgres utilizadno el CRON cada minuto