Os dejo un ejemplo sobre como crear un cursor dinámico en Forms.
PROCEDURE cursor IS my_cursor INTEGER; NUM_ROWS_PROCESSED INTEGER; id NUMBER; valor VARCHAR2(45); SQLSTR VARCHAR2(70); BEGIN SQLSTR := 'SELECT id, valor FROM test '; my_cursor:= DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE (my_cursor, SQLSTR, 1); DBMS_SQL.DEFINE_COLUMN (my_cursor, 1, id); DBMS_SQL.DEFINE_COLUMN (my_cursor, 2, VALOR, 45); NUM_ROWS_PROCESSED := DBMS_SQL.EXECUTE (my_cursor); LOOP IF DBMS_SQL.FETCH_ROWS (my_cursor) > 0 THEN DBMS_SQL.COLUMN_VALUE (my_cursor, 1, id); DBMS_SQL.COLUMN_VALUE (my_cursor, 2, valor); message(TO_CHAR(id) || ' ' || valor); message(TO_CHAR(id) || ' ' || valor); ELSE EXIT; END IF; END LOOP; DBMS_SQL.CLOSE_CURSOR (my_cursor); END; |