From: | Cesar Erices <caerices(at)gmail(dot)com> |
---|---|
To: | inf200476(at)ucf(dot)edu(dot)cu |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda para PL/pgsql |
Date: | 2009-03-05 12:07:34 |
Message-ID: | 1cb5d9840903050407m4b60df01id6c2be8a15ed2b8d@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
mira yo hice esta funcion
CREATE OR REPLACE FUNCTION cg_buscar_cargo(m_tipo integer, m_dato character
varying, m_codigo integer)
RETURNS SETOF cargo AS
$BODY$
DECLARE
fila cargo%rowtype;
sql character varying;
m character varying;
BEGIN
--1:BUSCAR TODOS LOS REGISTROS
IF m_tipo= 1 THEN
sql = 'SELECT * FROM cargo ORDER BY cg_cod';
END IF;
--2:BUSCAR REGISTROS DE ACUERDO AL NOMBRE O PARTE DE EL
IF m_tipo = 2 THEN
sql = 'SELECT * FROM cargo WHERE cg_nombre like ' ||
quote_literal($2) ;
END IF;
--3:BUSCAR REGISTROS DE ACUERDO AL CODIGO
IF m_tipo=3 THEN
sql = 'SELECT * FROM cargo WHERE cg_cod ='|| m_codigo;
END IF;
FOR fila IN EXECUTE sql
LOOP
RETURN NEXT fila;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
espero que te sirva de ejemplo
--
Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema
Santiago - Chile
From | Date | Subject | |
---|---|---|---|
Next Message | Emiliano Moscato | 2009-03-05 12:29:41 | Re: Usando GROUP BY |
Previous Message | Javier Chávez B. | 2009-03-05 11:44:51 | Re: MERGE (upsert) en postgres? |