Oracle 遊標for迴圈____Oracle

來源:互聯網
上載者:User
/*遊標的for迴圈pl/sql語言提供了遊標的for迴圈語句,【自動執行遊標的open,fetch,close語句和迴圈語句的功能】,當進入迴圈時,遊標for迴圈語句自動開啟遊標,並提取第一行遊標的資料,當程式處理完成當前所提取的資料而進入下一次迴圈時,遊標for迴圈語句自動提取下一行資料供程式處理,當提取完結果集合中的所有資料行結束迴圈,並自動關閉遊標;for index_variable in cursor_name[(value[,value]...)] Loop  --遊標處理代碼end loop;其中index_variable為遊標for迴圈語句隱含聲明的索引變數,該變數為記錄變數,其結構與遊標查詢語句返回的的結構集合相同,在程式中可以通過引用索引記錄變數元素來讀取所提取的遊標資料,index_variable中各元素的名稱與遊標查詢語句挑選清單中所制定的列名相同,如果在遊標查詢語句的挑選清單中存在計算資料行,則必須為這些計算資料行指定別名後才能通過遊標for迴圈語句中的索引變數來訪問這些列資料;::不要在程式中對遊標進行人工操作,不要在程式中定義用於控制for迴圈的記錄::*/declare  cursor c_sal is select emp.empno,emp.ename,emp.sal from emp;begin for v_sal in c_sal loop   -- 隱含開啟遊標:隱含監測c_sal%notfound:隱含關閉遊標   dbms_output.put_line(to_char(v_sal.empno)||'....'||v_sal.ename||to_char(v_sal.sal));    end loop;end;/* ::當所聲明的遊標帶有參數時候,通過遊標for迴圈語句為遊標傳遞參數:: ::可以將遊標看做是一個方法,帶參數的方法*/declare   cursor c_cursor(dept_no number default 10)  is   select dept.dname,dept.loc from dept where dept.deptno <= dept_no;begin  dbms_output.put_line('當dept_no 的參數為30時:');  for c1_rec in c_cursor(30) loop    dbms_output.put_line(c1_rec.dname||':'||c1_rec.loc);    end loop;end;/*pl/sql 還允許在遊標for迴圈語句中使用子查詢來實現遊標的功能*/declare  begin  for c1_rec in (select dept.dname,dept.loc from dept) loop    dbms_output.put_line(c1_rec.dname||'...'||c1_rec.loc);  end loop;end;


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.