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;
