Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/01/2012, 12:17
Avatar de drako_darpan
drako_darpan
 
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: necesito que envie datos dinamicos

Hola que tal, revisa si con esto te sirve:

Código PostgreSQL:
Ver original
  1. CREATE OR REPLACE FUNCTION domo_getlookupdata(pstrtabla character varying, pstrcampolookup character varying, pintidregistro numeric)
  2. RETURNS SETOF getlookupdata AS
  3. $BODY$
  4.     DECLARE
  5.         campo1      ALIAS FOR $1; -- Toma los valores de las variables
  6.         campo2      ALIAS FOR $2;
  7.         campo3      ALIAS FOR $3; -- Si el campo es Entero mandalo como INT4, para que no tengas que castearlo de CHAR a INT
  8.  
  9.         reg         getlookupdata; -- El type a regresar
  10.         cSql        VARCHAR(4000);
  11.  
  12.     BEGIN
  13.  
  14.         IF pintIdRegistro != 0 then
  15.             cSql := 'SELECT id_' || campo1 || ' , ' || campo2 || '
  16.                  FROM ' || campo1 || '
  17.                  WHERE id_'||campo1||' = ' || campo3 || '
  18.                  ORDER BY ' || campo2 || ' ';
  19.         ELSE
  20.             cSql := 'SELECT id_' || campo1 || ' , ' || campo2 || '
  21.                  FROM ' || campo1 || '
  22.                  ORDER BY ' || campo2 || ' ';
  23.         END IF;
  24.        
  25.         FOR reg IN execute cSql
  26.         LOOP
  27.             RETURN NEXT reg; -- Solo asigna los valores en el orden que tengas el TYPE
  28.         END LOOP;
  29.     RETURN;
  30.     END;
  31. $BODY$
  32. LANGUAGE 'plpgsql' VOLATILE;

Espero te sirva