码迷,mamicode.com
首页 > 数据库 > 详细

plsql一个函数的例子

时间:2017-12-12 21:20:28      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:sheng   type   pos   ble   select   tar   obj   like   dex   

------陈渝文统计报表优化一下午

1
create or replace type t_test as object 2 ( 3 HDID varchar2(60), 4 省份 varchar2(60), 5 派驻检察室数目 varchar2(60), 6 检所1 varchar2(60), 7 检所2 varchar2(60), 8 检所3 varchar2(60), 9 检所4 varchar2(60) 10 ) 11 / 12 create or replace type t_test_table as table of t_test; 13 / 14 CREATE OR REPLACE FUNCTION FN_GET_ADMINISTRATIVE_LEAF RETURN t_test_table AS 15 16 cursor shengji_c is 17 select T1.PINDEX, t1.B00, t1.B0101 18 from B01 t1 19 where t1.ZDYXB0132 = M03 20 and (t1.flag is null or t1.flag = 0); 21 22 TYPE refcur_type IS REF CURSOR; 23 book_refcur refcur_type; 24 25 V_PINDEX varchar2(100); 26 V_B00 varchar2(100); 27 V_B0101 varchar2(100); 28 29 V_ZDYXB0131 varchar2(100); 30 31 V_JS01 number := 0; 32 V_JS02 number := 0; 33 V_JS03 number := 0; 34 V_JS04 number := 0; 35 36 V_INDEX number := 1; 37 38 v_test t_test_table := t_test_table(); 39 begin 40 41 open shengji_c; 42 loop 43 fetch shengji_c 44 into V_PINDEX, V_B00, V_B0101; 45 exit when shengji_c%notfound; 46 47 V_JS01 := 0; 48 V_JS02 := 0; 49 V_JS03 := 0; 50 V_JS04 := 0; 51 52 open book_refcur for 53 SELECT ZDYXB0131 54 FROM B01 t 55 where (t.ZDYXB0131 like %170% or t.ZDYXB0131 like %171% or 56 t.ZDYXB0131 like %172% or t.ZDYXB0131 like %173%) 57 start with b00 = V_B00 58 CONNECT BY PRIOR B00 = B0144B 59 and (t.flag is null or t.flag = 0); 60 61 loop 62 fetch book_refcur 63 into V_ZDYXB0131; 64 exit when book_refcur%notfound; 65 if (V_ZDYXB0131 like %170%) then 66 V_JS01 := V_JS01 + 1; 67 end if; 68 if (V_ZDYXB0131 like %171%) then 69 V_JS02 := V_JS02 + 1; 70 end if; 71 if (V_ZDYXB0131 like %172%) then 72 V_JS03 := V_JS03 + 1; 73 end if; 74 if (V_ZDYXB0131 like %173%) then 75 V_JS04 := V_JS04 + 1; 76 end if; 77 end loop; 78 79 v_test.extend(); 80 v_test(V_INDEX) := t_test(V_B00, 81 V_B0101, 82 aaa, 83 V_JS01, 84 V_JS02, 85 V_JS03, 86 V_JS04); 87 V_INDEX := V_INDEX + 1; 88 89 end loop; 90 close shengji_c; 91 92 RETURN v_test; 93 END;

 

plsql一个函数的例子

标签:sheng   type   pos   ble   select   tar   obj   like   dex   

原文地址:http://www.cnblogs.com/zyx-/p/8028608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!