我有以下用于创建表和视图的代码。
create table test_company
(
comp_id number
, comp_name varchar2(500)
)
;
insert into test_company values(1, 'CompanyA');
insert into test_company values(2, 'CompanyB');
insert into test_company values(3, 'CompanyC');
create or replace view test_company_view as select * from test_company;我有以下代码用于我的光标测试。但是dbms_sql.to_cursor_number得到了错误ORA-01001: invalid cursor
set serveroutput on;
declare
reader test_company_view%ROWTYPE;
datacursor SYS_REFCURSOR;
v_cursor_id number;
begin
open datacursor for select * from test_company_view;
v_cursor_id := dbms_sql.to_cursor_number(datacursor); -- ERROR: invalid cursor
loop fetch datacursor into reader;
exit when datacursor%NOTFOUND;
dbms_output.put_line(reader.comp_id);
end loop;
close datacursor;
end;我做错什么了?感谢您的帮助!
我已经尝试过strongly-typed REF CURSOR和weakly-typed REF CURSOR,但它们得到了相同的错误。
发布于 2012-05-14 18:51:42
从documentation
将引用游标变量转换为
游标数字后,本机动态SQL操作将无法访问该变量。
引发错误的不是dbms_sql.to_cursor_number,而是fetch datacursor into reader,因为无法再访问datacursor。
https://stackoverflow.com/questions/10577543
复制相似问题