Oracle的游標使用小結


最近工作中常常需要使用游標,一般在循環或者需要一條條操作數據的場景下使用。
下面總結兩種常用的游標使用方法:

  1. FOR 循環游標
  2. FETCH游標

1.FOR 循環游標

  • 定義游標
  • 定義游標變量
  • 使用for循環來使用這個游標
declare
       --類型定義
       cursor c_job
       is
       select empno,ename,job,sal
       from emp
       where job='MANAGER';
       --定義一個游標變量v_row c_job%ROWTYPE ,該類型為游標c_job中的一行數據類型
       v_row c_job%rowtype;
begin
       for v_row in c_job loop
         dbms_output.put_line(v_row.empno||'-'||v_row.ename||'-'||v_row.job||'-'||v_row.sal);
       end loop;
end;
/

2.Fetch游標

  • 注意:使用的時候必須要明確的打開和關閉
declare 
       --類型定義
       cursor c_job
       is
       select empno,ename,job,sal
       from emp
       where job='MANAGER';
       --定義一個游標變量
       v_row c_job%rowtype;
begin
       open c_job;
         loop
           --提取一行數據到v_row
           fetch c_job into v_row;
           --判讀是否提取到值,沒取到值就退出
           --取到值c_job%notfound 是false 
           --取不到值c_job%notfound 是true
            exit when c_job%notfound;
            dbms_output.put_line(v_row.empno||'-'||v_row.ename||'-'||v_row.job||'-'||v_row.sal);
         end loop;
       --關閉游標
      close c_job;
end;
/

其中:

  • %TYPE說明
    為了使一個變量的數據類型與另一個已經定義了的變量(尤其是表的某一列)的數據類型相一致

  • %ROWTYPE說明
    如果一個表有較多的列,使用%ROWTYPE來定義一個表示表中一行記錄的變量。


免責聲明!

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



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