龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle 多层游标的嵌套实操

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
以下的文章主要介绍的是 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;   

以上的相关内容就是对Oracle 多层游标嵌套的介绍,望你能有所收获。

精彩图集

赞助商链接