Usar Cursor SQL Dinamico Retorne String

tema enviado por hetor en ORACLE
tema iniciado el 04/12/2007
Tengo la siguiente funcion, alguien podria ayudarme como ciclar dentro de un query dinamico ej: EXEC :CURSOR := PRUEBAS1( '*', 'GARANTIAS.GARCEDO0', 'PAI_CVE = 1', '2' ) el query seria: SELECT * FROM garcedo0 WHERE pai_cve = 1 pero quiero retornar una cadena manipulada con los datos que me de este query. CREATE OR REPLACE FUNCTION Pruebas1 ( idCampos VARCHAR2, idTablas VARCHAR2, idCondicion VARCHAR2, idOrdenar VARCHAR2 ) RETURN VARCHAR2 IS rclCURSORSAL GARANTIAS.CursorGarantias.ref_cursor ; vlCADENASQL VARCHAR2(4000) ; varCadena VARCHAR2 (4000) ; tmpvar VARCHAR2 (4000) ; --fila %ROWTYPE ; BEGIN vlCADENASQL := ' SELECT ' || idCampos || ' FROM ' || idTablas ; IF idCondicion IS NOT NULL THEN vlCADENASQL := vlCADENASQL || ' WHERE ' || idCondicion ; END IF ; IF idOrdenar IS NOT NULL THEN vlCADENASQL := vlCADENASQL || ' ORDER BY ' || idOrdenar ; END IF ; BEGIN OPEN rclCURSORSAL FOR vlCADENASQL ; LOOP FETCH rclCURSORSAL INTO varCadena ; EXIT WHEN rclCURSORSAL%NOTFOUND ; tmpvar := tmpvar || 'ID EDO = ' || varCadena.1 || ', ESTADO = ' || varCadena.1 || ', PAIS CVE = ' || varCadena.1 || ','; END LOOP ; CLOSE rclCURSORSAL ; END ; RETURN tmpvar ; EXCEPTION WHEN OTHERS THEN dbms_output.put_line(SQLCODE) ; dbms_output.put_Line(SQLERRM) ; END Pruebas1 ; / Por su atencion gracias