oracle遍歷游標


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM