declare
type cur is ref cursor;
begin
open cur for 'select * from tabs';
for vRecord in cur loop
dbms_output.put_line(vRecord.table_name);
end loop;
end;这样做难道就不行吗?
type cur is ref cursor;
begin
open cur for 'select * from tabs';
for vRecord in cur loop
dbms_output.put_line(vRecord.table_name);
end loop;
end;这样做难道就不行吗?
declare
begin
for vRecord in select * from tabs loop
dbms_output.put_line(vRecord.table_name);
end loop;
end;
这样不就行了?
begin
for vRecord in (select * from tabs) loop
dbms_output.put_line(vRecord.table_name);
end loop;
end;
declare
type cur is ref cursor;
c1 cur;
begin
open c1 for select * from tabs;
for vRecord in cur loop
dbms_output.put_line(vRecord.table_name);
end loop;
end;
你没定义游标变量。
在 for vRecord in cur loop处
说:invalid user of type name or subtype name
declare
type cur is ref cursor;
c1 cur;
begin
open c1 for select * from tabs;
for vRecord in c1 loop
dbms_output.put_line(vRecord.table_name);
end loop;
end;
你没定义游标变量。
“动态游标是一个类型,应该用这个类型声明游标变量然后使用;”
“游标被打开后就不能再被打开,所以动态游标被打开后,请不要再使用for循环;”所以动态游标不能用for循环,只能loop..fetch...。
fetch cur into v_record;
exit when sql%notfound;
...
end loop;