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;
时间: 2024-11-01 21:57:17