plsql一个函数的例子

------陈渝文统计报表优化一下午
 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;
时间: 2024-10-31 02:13:53

plsql一个函数的例子的相关文章

lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子:

Python的lambda匿名函数 def f(x):    return x**2 print f(4) Python中使用lambda的话,写成这样 g = lambda x : x**2print g(4) lambda表达式在很多编程语言都有对应的实现.比如C#: var g = x => x**2Console.WriteLine(g(4)) 那么,lambda表达式有什么用处呢?很多人提出了质疑,lambda和普通的函数相比,就是省去了函数名称而已,同时这样的匿名函数,又不能共享在别

plsql 常用函数-转

PLSQL常用函数 1)处理字符的函数 || 或 CONCAT---并置运算符. 格式∶CONCAT(STRING1, STRING2) 例:’ABC’|| ’DE’=’ABCDE’ CONCAT(‘ABC’,’DE’) =’ABCDE’ ASCII---返回字符的ASCII码. 例:ASCII(‘A’) = 65  CHR---返回指定ASCII码的字符. 例:CHR(65) = ‘A’  INSTR---搜索子串位置  格式∶INSTR(STRING , SET[ , 开始位置[ , 出现次

swap函数的例子

13.31为你的HasPtr类定义一个<运算符,并定义一个HasPtr的vector为这个vector添加一些元素,并对它执行sort.注意何时会调用swap. #include<iostream> #include<string> #include<new> #include<vector> #include<algorithm> using namespace std; class HasPtr { friend void swap(H

【Python】一个简单的例子

问题描述: Python基础篇 参考资料: (1)http://www.cnblogs.com/octobershiner/archive/2012/12/04/2801670.html (2)http://www.cnblogs.com/itech/archive/2010/06/20/1760345.html 例子: 求解Fibonacci glb_var.py gl_count=1 path.py # coding:utf-8 ''' Created on 2014-4-28 @autho

写一个函数找到给定字符串的位置

题目 给你一个排好序的并且穿插有空字符串的字符串数组,写一个函数找到给定字符串的位置. 例子:在字符串数组 [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”,“”, “dad”, “”, “”] 中找到”ball”,返回下标4. 例子:在字符串数组 [“at”, “”, “”, “”, “”, “ball”, “car”, “”, “”, “dad”, “”, “”] 中找到”ballcar”,查找失败,返回-1. 解答 字符串数组已经是有序的了,所以,还

用一个函数返回参数二进制中1的个数

//题目:写一个函数返回参数二进制中的1的个数 //      比如:15    0000 1111  4个1 //     程序原型:  int count_one_bit(unsigned int value) //                {  //                        //返回1的个数 //                 }     #include<stdio.h> #include<stdlib.h> int count_one_bit

Matlab中如何将(自定义)函数作为参数传递给另一个函数

Matlab中如何将(自定义)函数作为参数传递给另一个函数 假如我们编写了一个积分通用程序,想使它更具有通用性,那么可以把被积函数也作为一个参数.在c/c++中,可以使用函数指针来实现上边的功能,在matlab中如何实现呢?使用函数句柄——这时类似于函数指针的一项功能.假如我们现在已经编写了一个辛普森方法积分的函数如下,我们要把函数作为参数传给它(当然啦,matlab早已经提供给我们非常牛x的积分函数了,这里只是个例子而已):function g=myintegrate(f,N,a,b)%int

你相信么,只需一个函数5行JS代码即可在Javascript中实现完整的AOP功能

你相信么,只需一个函数5行JS代码即可在Javascript中实现完整的AOP功能, 你相信么,在JavaScript只需一个函数5行代码即可实现完整的面向方面AOP编程功能.这5行代码的功能包括: 无限层次的函数无害拦截 函数执行前拦截 检查函数的参数值 重新设定函数的参数值 函数执行后拦截 检查函数执行后的返回结果 重新设定函数的返回结果 虽然动态函数式语言的效率是一个存在的问题,但是对于它的高度灵活性,简直让人令人惊叹不已,剧赞. 这个小小的函数源自于和爱明兄的一次讨论:在javascri

JavaScript的一个深拷贝的例子——递归函数的实现

今天学到了JS的关于深拷贝和浅拷贝的例子,有些体会. 在JavaScript中,变量的拷贝分为两种,一种是值拷贝,一种是内存地址拷贝,意思是当赋值给变量的只是一个简单的基本数值时,变量与变量之间的储存空间是相互独立,两个变量之间的改变不会相互影响,而当赋值给变量的是一个对象或数组的时候,变量与变量之间的存储空间将会指向同一个内存空间,当某一个变量改变时,内存空间的值也会改变. //值拷贝 var i = 4; var j = i; //内存地址拷贝 var m = {name:'xxx'}; v