存储过程定义多个游标多个begin

1、直接定义多个显示游标 

 1 CREATE OR REPLACE PROCEDURE ACC.DBP_REALCITYTRAFFICCNT IS 
 2 CURSOR cur1 IS SELECT 。。。 --第一个游标 
 3 
 4 CURSOR cur2 IS SELECT 。。。 --第二个游标 
 5 
 6 BEGIN 
 7 
 8 
 9 --调用cur1 
10 BEGIN 
11 OPEN cur1 ;   
12   LOOP 
13   FETCH cur1 INTO 。。。 
14   EXIT WHEN cur1%NOTFOUND;   
15   ...业务逻辑 
16   COMMIT; 
17 
18   END LOOP; 
19   CLOSE cur1; 
20 
21 END; 
22 
23 --调用cur2 
24 BEGIN 
25   OPEN cur2 ;   
26   LOOP 
27   FETCH cur2 INTO 。。。 
28   EXIT WHEN cur2%NOTFOUND;   
29   ...业务逻辑 
30   COMMIT; 
31 
32   END LOOP; 
33   CLOSE cur2; 
34 
35 end; 
36 END DBP_REALCITYTRAFFICCNT; 

2、通过定义ref游标来实现 

 1 TYPE refcur_t IS REF CURSOR; --声明REF游标类型 
 2 
 3 cur1 refcur_t; --声明第一个游标REF游标类型的变量 
 4 
 5 cur2 refcur_t; --声明第二个游标REF游标类型的变量 
 6 
 7 BEGIN 
 8 
 9 
10 --调用cur1 
11 BEGIN 
12 OPEN cur1 ;   
13   LOOP 
14   FETCH cur1 INTO 。。。 
15   EXIT WHEN cur1%NOTFOUND;   
16   ...业务逻辑 
17   COMMIT; 
18 
19   END LOOP; 
20   CLOSE cur1; 
21 
22 END; 
23 
24 --调用cur2 
25 BEGIN 
26   OPEN cur2 ;   
27   LOOP 
28   FETCH cur2 INTO 。。。 
29   EXIT WHEN cur2%NOTFOUND;   
30   ...业务逻辑 
31   COMMIT; 
32 
33   END LOOP; 
34   CLOSE cur2; 
35 
36 end; 
37 END DBP_REALCITYTRAFFICCNT;
365个夜晚,我希望做到两天更一篇博客。加油,小白!
原文地址:https://www.cnblogs.com/qq2806933146xiaobai/p/10368917.html