1,while循環
declare
v_tname varchar2(20);
cursor c_tname is select a.TABLE_NAME from user_tables a where a.TABLESPACE_NAME = 'VTMDATA';
begin
open c_tname;
fetch c_tname into v_tname;
while c_tname%found loop
dbms_output.put_line(v_tname);
fetch c_tname into v_tname; --此處必須fetch否則就一直取第一個造成死循環
end loop;
close c_tname; --要手動關閉游標否則不能再次使用
end;
2,for循環
declare
cursor c_tname is select a.TABLE_NAME from user_tables a where a.TABLESPACE_NAME = 'VTMDATA';
begin
for tname in c_tname
loop
dbms_output.put_line(tname.table_name); --通過"." 操作符去對應的列
end loop; --循環完成之后自動關閉游標,無需手動關閉
exception
when others then
dbms_output.put_line(sqlcode);
dbms_output.put_line(sqlerrm);
end;