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;