以下的文章主要介紹的是Oracle 多層游標的嵌套,以及有對Oracle 游標的具體概念的描述,以下文章主要是對Oracle 多層游標的嵌套的實際操作步驟的描述,希望會給你帶來一些幫助在此方面。
不是這樣的,存儲過程中不是非要用游標啊,他有輸入和輸出參數,只要在過程中做相應的處理就會返回輸出參數。游標的作用主要是為了循環提取數據,游標分隱性游標和顯性游標。
舉個例子(顯性游標):
CURSOR 游標名 IS SELECT 語句;
.....
WHILE 游標名% found LOOP
.....
END LOOP;
其中的SELECT 語句提取的是一列值,然後每次取一個進行下面的循環。
(隱性游標):
for 游標名 in (SELECT 語句)loop
.....
.....
END LOOP;
其中的SELECT 語句提取的也是一列值,然後每次取一個進行下面的循環。
Oracle 多層游標嵌套:一般的多層嵌套可以用幾個表聯合起來查詢就能替代,但有時卻不能代替,比如,第二個要查詢的值是第一個查出值後再進行like運算
- declare
- v_0 number;
- v_1 number;
- cursor c1 is select productordernumber from his_productorder@pro_crm where productid in (9000045516);
- cursor c2 is select cust_order_id from suf_cust_order_q_his where cust_order_num like v_0||'%';
- cursor c3 is select * from suf_work_order_q_his where cust_order_id=v_1;
- begin
- for i in c1 loop
- v_0:=i.productordernumber;
- for j in c2 loop
- v_1:=j.cust_order_id;
- for k in c3 loop
- dbms_output.put_line(k.work_order_id||' '||k.status);
- end loop;
- end loop;
- end loop;