程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 多層游標的嵌套實操

Oracle 多層游標的嵌套實操

編輯:Oracle數據庫基礎

以下的文章主要介紹的是Oracle 多層游標的嵌套,以及有對Oracle 游標的具體概念的描述,以下文章主要是對Oracle 多層游標的嵌套的實際操作步驟的描述,希望會給你帶來一些幫助在此方面。

不是這樣的,存儲過程中不是非要用游標啊,他有輸入和輸出參數,只要在過程中做相應的處理就會返回輸出參數。游標的作用主要是為了循環提取數據,游標分隱性游標和顯性游標。
舉個例子(顯性游標):

CURSOR 游標名 IS SELECT 語句;
.....
WHILE 游標名% found LOOP
.....
END LOOP;

其中的SELECT 語句提取的是一列值,然後每次取一個進行下面的循環。

(隱性游標):

for 游標名 in (SELECT 語句)loop
.....

.....
END LOOP;

其中的SELECT 語句提取的也是一列值,然後每次取一個進行下面的循環。

Oracle 多層游標嵌套:一般的多層嵌套可以用幾個表聯合起來查詢就能替代,但有時卻不能代替,比如,第二個要查詢的值是第一個查出值後再進行like運算

  1. declare  
  2. v_0 number;  
  3. v_1 number;  
  4. cursor c1 is select productordernumber from his_productorder@pro_crm where productid in (9000045516);  
  5. cursor c2 is select cust_order_id from suf_cust_order_q_his where cust_order_num like v_0||'%';  
  6. cursor c3 is select * from suf_work_order_q_his where cust_order_id=v_1;  
  7. begin  
  8. for i in c1 loop  
  9. v_0:=i.productordernumber;  
  10. for j in c2 loop  
  11. v_1:=j.cust_order_id;  
  12. for k in c3 loop  
  13. dbms_output.put_line(k.work_order_id||' '||k.status);  
  14. end loop;  
  15. end loop;  
  16. end loop;   
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved