下面例子中,L可以作为你循环的变量,给你参考一下 ----------------- DECLARE ci NUMBER; j NUMBER;-- lc_sql VARCHAR2(300); k NUMBER; L NUMBER; BEGIN /* FOR cur IN (SELECT * FROM dual) LOOP
DBMS_OUTPUT.put_line(cur.dummy);
END LOOP;*/ lc_sql := 'select 1,2,3,4,5 from dual '; ci:=dbms_sql.open_cursor; dbms_sql.parse(ci,lc_sql,dbms_sql.v7); dbms_sql.define_column(ci,L,j); k := dbms_sql.execute(ci); If dbms_sql.fetch_rows(ci) > 0 then
dbms_sql.COLUMN_VALUE(ci,L,j ); END IF; --dbms_sql.define_column(ci,1,j);
DBMS_OUTPUT.put_line(j);
dbms_sql.close_cursor(ci); EXCEPTION WHEN OTHERS THEN IF dbms_sql.is_open(ci) THEN dbms_sql.close_cursor(ci); END IF; DBMS_OUTPUT.put_line(SQLERRM||SQLCODE); END;
-----------------
DECLARE
ci NUMBER;
j NUMBER;--
lc_sql VARCHAR2(300);
k NUMBER;
L NUMBER;
BEGIN
/* FOR cur IN (SELECT * FROM dual) LOOP
DBMS_OUTPUT.put_line(cur.dummy);
END LOOP;*/
lc_sql := 'select 1,2,3,4,5 from dual ';
ci:=dbms_sql.open_cursor;
dbms_sql.parse(ci,lc_sql,dbms_sql.v7);
dbms_sql.define_column(ci,L,j);
k := dbms_sql.execute(ci);
If dbms_sql.fetch_rows(ci) > 0 then
dbms_sql.COLUMN_VALUE(ci,L,j );
END IF;
--dbms_sql.define_column(ci,1,j);
DBMS_OUTPUT.put_line(j);
dbms_sql.close_cursor(ci);
EXCEPTION WHEN OTHERS THEN
IF dbms_sql.is_open(ci) THEN
dbms_sql.close_cursor(ci);
END IF;
DBMS_OUTPUT.put_line(SQLERRM||SQLCODE);
END;