Ver Mensaje Individual
  #7 (permalink)  
Antiguo 19/01/2012, 12:47
jsmaira
 
Fecha de Ingreso: enero-2012
Mensajes: 29
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: necesito que envie datos dinamicos

Mira asi quedo.....

CREATE OR REPLACE FUNCTION domo_getlookupdata(campo1 character varying, campo2 character varying, campo3 numeric)
RETURNS SETOF VARCHAR AS
$BODY$
DECLARE
campo1 ALIAS FOR $1; -- Toma los valores de las variables
campo2 ALIAS FOR $2;
campo3 ALIAS FOR $3; -- Si el campo es Entero mandalo como INT4, para que no tengas que castearlo de CHAR a INT

reg RECORD; -- El type a regresar
cSql VARCHAR(4000);
cCampoRetorno VARCHAR(5000);

BEGIN

IF campo3 != 0 then
cSql := 'SELECT id_'|| campo1 || ' , ' || campo2 || '
FROM ' || campo1 || '
WHERE id_'||campo1||' = ' || campo3 || '
ORDER BY ' || campo2 || ' ';
ELSE
cSql := 'SELECT id_'|| campo1 || ' , ' || campo2 || '
FROM ' || campo1 || '
ORDER BY ' || campo2 || ' ';
END IF;

FOR reg IN execute cSql
LOOP
RETURN NEXT reg; -- Solo asigna los valores en el orden que tengas el TYPE
END LOOP;

cCampoRetorno = reg.id_Campo1 ||' ' || reg.Campo2;
RETURN next cCampoRetorno;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;



al hacer la consulta correspondiente para revisar si trae datos :


select * from domo_getlookupdata ('cine2','nombre_pelicula','0')

bueno no trae y muestar este error...

ERROR: record "reg" has no field "id_campo1"
CONTEXT: PL/pgSQL function "domo_getlookupdata" line 28 at assignment


********** Error **********

ERROR: record "reg" has no field "id_campo1"
SQL state: 42703
Context: PL/pgSQL function "domo_getlookupdata" line 28 at assignment

y no lo he podido encontrar el por q

me avisas si sabes de algo gracias por la ayuda :)