Amigos necesito ayuda...
tengo un procedimiento y necesito que traiga unos datos dinamicos..el problema es el siguiente.
El procedimiento al guardar perfecto..el problem es al consultar este procedimiento..el error que envia es el siguiente:
ERROR: syntax error at or near "OPEN" en el carácter 16
QUERY: BEGIN
OPEN SWV_Res.SWV_RefCur FOR
SELECT id_cine2, nombre_pelicula FROM cine2 ORDER BY nombre_pelicula EXCEPTION WHEN OTHERS THEN
NULL;
END;
CONTEXT: PL/pgSQL function "domo_getlookupdata" line 24 at execute statement
********** Error **********
ERROR: syntax error at or near "OPEN"
SQL state: 42601
Context: PL/pgSQL function "domo_getlookupdata" line 24 at execute statement
supuestamente haria bien la consulta pero no funciona ese asunto del open..
aqui esta el procedimiento correspondiente..
CREATE OR REPLACE FUNCTION DOMO_getLookupData(v_strTabla VARCHAR(100)
,v_strCampoLookup VARCHAR(100)
,v_intIdRegistro VARCHAR(100))
RETURNS DOMO_getLookupData_result AS
$procedure$
DECLARE
v_sql VARCHAR(8000);
SWV_Res DOMO_getLookupData_result;
BEGIN
IF v_intIdRegistro <> 0 then
v_sql := 'OPEN SWV_Res.SWV_RefCur FOR
SELECT id_'|| v_strTabla || ', ' || v_strCampoLookup ||
' FROM ' || v_strTabla ||
' WHERE id_'|| v_strTabla || ' = ' || CAST(v_intIdRegistro AS VARCHAR(30)) ||
' ORDER BY ' || v_strCampoLookup|| ' ';
ELSE
v_sql := 'BEGIN
OPEN SWV_Res.SWV_RefCur FOR
SELECT id_'|| v_strTabla || ', ' || v_strCampoLookup ||
' FROM ' || v_strTabla ||
' ORDER BY ' || v_strCampoLookup || ' EXCEPTION WHEN OTHERS THEN
NULL;
END;';
end if;
-- NOT SUPPORTED PRINT @sql;
EXECUTE v_sql;
RETURN SWV_Res;
END;
$procedure$
LANGUAGE plpgsql;
ALTER FUNCTION DOMO_getLookupData(varchar(100), varchar(100), varchar(100)) OWNER TO sa;
y este es el tipo:
CREATE TYPE DOMO_getLookupData_result AS(SWV_RefCur refcursor);
alguien que me ayude por fa
saludos