From: | Estéfano Castillo <ecastillo(at)crecic(dot)cl> |
---|---|
To: | "'Ricardo Mercado'" <rmercado(at)dportales(dot)cl>, "'Postgres'" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Tabla como parametro de funcion |
Date: | 2004-06-08 17:18:04 |
Message-ID: | 003101c44d7c$8fd57130$4901a8c0@desarrollo.crecic.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
AQUI TE MANDO UN EJEMPLO, ESPERO TE SIRVA...
CREATE OR REPLACE FUNCTION "public"."seg_llena_cmbspr" (varchar, varchar,
varchar, varchar) RETURNS SETOF "public"."udf_seg_codigo_desc" AS'
DECLARE
pi_vcharCampo_Codigo ALIAS FOR $1;
pi_vcharCampo_Desc ALIAS FOR $2;
pi_vcharNombre_Tabla ALIAS FOR $3;
pi_vcharCondicion ALIAS FOR $4;
v_sqlstring VARCHAR(500);
v_selectstring VARCHAR(500);
v_retval udf_seg_codigo_desc%ROWTYPE;
BEGIN
IF pi_vcharCondicion=''0'' THEN
v_selectstring:=(''LTRIM(''||pi_vcharCampo_Desc||'')'');
ELSE
v_selectstring:=(''LTRIM(''||pi_vcharCampo_Codigo||'')'');
END IF;
FOR v_retval IN EXECUTE ''SELECT ''||v_selectstring||'' FROM
''||pi_vcharNombre_Tabla||'' ORDER BY ''||pi_vcharCampo_Desc||'';''
LOOP
RETURN NEXT v_retval;
END LOOP;
RETURN;
END
'LANGUAGE 'plpgsql' STABLE CALLED ON NULL INPUT SECURITY INVOKER;
Estéfano Castillo E.
Técnico Universitario en Computación e Informática
Jefe de Programación - CRECIC S.A.
Fono : (41) 240002 Anexo 724
Celular : 09-3850119
E-Mail : ecastillo(at)crecic(dot)cl
-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org]En nombre de Ricardo Mercado
Enviado el: martes, 08 de junio de 2004 11:26
Para: Postgres
Asunto: [pgsql-es-ayuda] Tabla como parametro de funcion
HOLA.
La idea es la siguiente:
Quiero pasar como parámetro a una función ppgsql el nombre de una
tabla, para luego dentro de la función hacer SELECT, o cualquier otra
operación.
EJEMPLO:
CREATE OR REPLACE FUNCTION myfuncion(Text) RETURNS SETOF Mytype AS '
DECLARE
My_Tabla ALIAS FOR $1;
My_Registro RECORD;
BEGIN
FOR My_Registro IN SELECT * FROM My_Tabla LOOP
.....
.....
.....
RETURN NEXT My_Registro
END LOOP;
RETURN NEXT My_Registro;
END;
' LANGUAGE 'plpgsql';
El tema es que cuando ejecuto mi función haciendo
SELECT * FROM myfuncion('clientes');
Me marca ERROR: missing ".." at end of SQL expression y no me reconoce
My_Tabla, es decir, postgres en el fondo no hace una sustitución de
my_tabla por el valor del parámetro que le paso (clientes).
Necesito una cuerda para salir a flote.
--
RICARDO IGNACIO MERCADO ARANEDA
Dirección de Sistemas
Organización Educacional Diego Portales
Fono 41-910252 Anexo 225 CONCEPCIÓN
E-Mail : rmercado(at)dportales(dot)cl
MSN : rmercado23(at)hotmail(dot)com
---------------------------(end of broadcast)---------------------------
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envíe "unregister SuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
From | Date | Subject | |
---|---|---|---|
Next Message | Leonel Nunez | 2004-06-08 18:18:59 | Re: Formulario HTML-->PHP-->Postgres que estoy |
Previous Message | Manuel | 2004-06-08 17:03:55 | Re: Tabla como parametro de funcion |