muchachos tengo un procedimiento almacenado con un sql dinamico pero quiero que colocarle a ese sql unos parametros de que viene de otra consulta lo tengo algo si:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION prueba()
RETURNS SETOF "int8" AS
$BODY$
DECLARE
r INTEGER;
r2 INTEGER;
i INTEGER;
j record;
BEGIN
FOR j IN SELECT dispositivo,salidas.intervalo FROM mapeo_bca INNER JOIN salidas ON mapeo_bca.acceso_de_estación=salidas.acceso WHERE salidas.fecha_de_trasaccion='29/10/2015' AND salidas.intervalo='00:00' AND dispositivo='10000002' ORDER BY dispositivo
loop
r := 0;
FOR i IN 1..10 LOOP
EXECUTE 'SELECT dia_habil_'|| i ||' FROM dia_habil WHERE dispositivo='||j.dispositivo||' AND intervalo='||j.intervalo||'' INTO r2;
r:= r+ r2;
RETURN NEXT r;
END LOOP;
END loop;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
pero el inconveniente es que los dos valores tiene que estar dentro de comillas por que son varchar miren el erro que me sale :
Código SQL:
Ver originalERROR: error de sintaxis en o cerca de «:»
LINE 1: ...ROM dia_habil WHERE dispositivo=10000002 AND intervalo=00:00
^
QUERY: SELECT dia_habil_1 FROM dia_habil WHERE dispositivo=10000002 AND intervalo=00:00
CONTEXT: función PL/pgSQL prueba() en la línea 16 en sentencia EXECUTE
me podrian ayudar