- 浏览: 326787 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
Mr丶Chenn:
...
doFilter如何使用 -
Mr丶Chenn:
[url][url][url][url][/url][/url ...
doFilter如何使用 -
Mr丶Chenn:
...
doFilter如何使用 -
Mr丶Chenn:
引用引用引用引用引用
doFilter如何使用 -
honlin:
SafeUtil.getDateFormat().trim() ...
DateUtil
先列举一个从网上搜到的比较简单的使用管道函数的例子:
--首先定义类型,管道函数可以返回多行数据,所以不能使用基础数据类型。 create or replace type my_type as table of varchar2(4000); --创建管道函数 --管道函数关键字: "[b]pipelined[/b]" --管道函数返回一行使用:"[b]pipe row(...)[/b]" create or replace function func_pipe_test return my_type pipelined is begin for i in reverse 1 .. 10 loop pipe row(i); end loop; end; --使用管道函数 select * from table(func_pipe_test);
下面结合项目中使用的与大家分享:
--首先定义类型,管道函数可以返回多行数据,所以不能使用基础数据类型 CREATE OR REPLACE TYPE "IF_SET_TAB" AS TABLE OF RET_ROW --定义每一行内容的类型(此处也可定义成类似表结构) CREATE OR REPLACE TYPE "RET_ROW" AS OBJECT(Rval int) -- CREATE OR REPLACE FUNCTION FB_IS_SETACCOUNT ( NO INT ) RETURN IF_SET_TAB PIPELINED IS RET_ROW0 RET_ROW:=RET_ROW(NULL); bizType fb_business.biz_type%TYPE; num int; ret int :=0; BEGIN SELECT biz_type INTO bizType FROM business WHERE bid=FB_IS_SETACCOUNT.NO; IF (bizType = '101') THEN SELECT count(*) into num FROM ACCOUNTS WHERE ACCOUNT_TYPE IN('CREDIT','DEPOSIT','INTREST.INCOME','WITHHOLDING') AND BID =FB_IS_SETACCOUNT.NO and account_no is not null; if num = 4 then ret := 1; end if; ELSIF(bizType = '104') THEN SELECT count(*) into num from ACCOUNTS WHERE ACCOUNT_TYPE IN('CREDIT','DEPOSIT','CONSIGN.DEPOSIT','CHARGE.PAY','CHARGE.INCOME','CONSIGN.INTREST') AND BID =FB_IS_SETACCOUNT.NO and account_no is not null; if num = 6 then ret := 1; end if; END IF; RET_ROW0.Rval := FB_IS_SETACCOUNT.ret; pipe row(RET_ROW0); --加入管道 return; END;
下面列举管道函数中返回的是类似于数组结构的函数:
--首先定义类型,管道函数可以返回多行数据,所以不能使用基础数据类型 CREATE OR REPLACE TYPE "HN_STAT_KM_BALANCE_TAB" AS TABLE OF HN_STAT_KM_BALANCE_ROW --定义每一行内容的类型(此处类似表结构) CREATE OR REPLACE TYPE "HN_STAT_KM_BALANCE_ROW" AS OBJECT (no varchar2(10), name varchar2(100), treeNo varchar2(20), currentAmount NUMBER(20,2), notifyAmount NUMBER(20,2), threeMonthAmount NUMBER(20,2), sixMonthAmount NUMBER(20,2), oneYearAmount NUMBER(20,2), twoYearAmount NUMBER(20,2), threeYearAmount NUMBER(20,2), fiveYearAmount NUMBER(20,2), MoreYearAmount NUMBER(20,2), consignDepositAmount NUMBER(20,2), shortLoanAmount NUMBER(20,2), longLoanAmount NUMBER(20,2), consignLoanAmount NUMBER(20,2), totalAmount NUMBER(20,2) ) --下面是函数 CREATE OR REPLACE FUNCTION HN_STAT_KM_BALANCE( qryCltno varchar2, qryTreeNo varchar2, containFlag Integer, qrydate IN DATE, qryType Integer, --null--
bz IN varchar2 ) RETURN HN_STAT_KM_BALANCE_TAB PIPELINED IS RET HN_STAT_KM_BALANCE_ROW:=HN_STAT_KM_BALANCE_ROW(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); anothorTreeNo varchar2(20); qrybz varchar2(1); BEGIN qrybz := bz; if(bz is null) then qrybz := 'R'; end if; --存款科目余额 if qryType is null then for rec3 in(select no,treeno,name from table(HN_STAT_SHEET_CLIENT(qryCltno,qryTreeNo,containFlag,null))) loop RET := HN_STAT_KM_BALANCE_ROW(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); ret.no := rec3.no; ret.treeNo := rec3.treeno; ret.name := rec3.name; ret.totalAmount := 0; ret.threeMonthAmount := 0; ret.sixMonthAmount := 0; ret.oneYearAmount := 0; ret.notifyAmount := 0; ret.twoYearAmount:= 0; ret.threeYearAmount:=0; ret.fiveYearAmount := 0; ret.MoreYearAmount := 0; if ret.treeNo = '001001000%' then anothorTreeNo := '001001'; else anothorTreeNo := '000'; end if; --存款统计 包括 通知,短期存款, 中长期存款 for rec in (select sum(b.rval) amount,a.kmh kmh from acnt a,table(NS_GetRval(qrybz,a.no, qrydate, 0)) b,client n where a.clientid=n.cltno and a.bz = qrybz and b.rval != 0 and (n.treeno like ret.treeNo or n.treeno = anothorTreeNo) group by a.kmh order by a.kmh) loop if (rec.kmh = '*') then ret.threeMonthAmount := ret.threeMonthAmount + rec.amount; elsif(rec.kmh = '*') then ret.sixMonthAmount := ret.sixMonthAmount + rec.amount; elsif(rec.kmh = '*') then ret.oneYearAmount := ret.oneYearAmount + rec.amount; elsif(rec.kmh = '*') then ret.notifyAmount := ret.notifyAmount + rec.amount; elsif(rec.kmh = '*') then ret.twoYearAmount := ret.twoYearAmount + rec.amount; elsif(rec.kmh = '*') then ret.threeYearAmount := ret.threeYearAmount + rec.amount; elsif(rec.kmh = '*') then ret.fiveYearAmount := ret.fiveYearAmount + rec.amount; elsif(rec.kmh = '*') then ret.MoreYearAmount := ret.MoreYearAmount + rec.amount; end if; ret.totalAmount := ret.totalAmount + rec.amount; end loop; PIPE ROW(RET); end loop; end if; RETURN; END HN_STAT_KM_BALANCE;
发表评论
-
数据库连接超过了最大最大连接数
2012-06-06 10:31 1473从日志看是发起的数据库连接超过了最大最大连接数(500个)。如 ... -
临时表空间损坏
2012-06-05 14:58 0http://www.linuxidc.com/Linux/2 ... -
union union all
2012-02-29 15:16 472union 以后会去掉重复字段 union ... -
oracle extract函数
2012-02-29 14:54 960select extract(year from TO_D ... -
oracle profiler安装
2012-01-17 14:20 1337比较好的安装资料 http://www.qudong. ... -
oralce数据库调优
2012-01-13 16:26 1553oracle数据库调优培训备 ... -
查找表中某几个字段重复的记录
2011-12-31 13:16 898查找表中某几个字段重复的记录 select rowid ... -
oracle字段从varchar2转化为clob
2011-12-06 11:30 2080在项目中遇到原来的varchar2类型长度不够了,仅为4000 ... -
oracle意外drop表
2011-08-26 15:33 977http://8xybuttfly.blog.163.com/ ... -
decode函数
2011-08-17 16:56 787select decode( x , 1 , ‘x is 1 ... -
plsql对小时判断
2011-08-17 16:41 1053if to_char(sysdate,'HH24') n ... -
oracle中private同义词和public同义词
2011-08-17 11:06 3666项目中遇到,遂从网上搜索了下,觉得如下解释较为通俗易懂: ... -
表空间太小报错
2011-08-11 14:47 866ORA-10654 unable to extend ... -
oracle数据脚本的管理
2011-07-27 14:30 1040针对没有上线的项目脚本,可以集中在一起管理。 写成.P ... -
oracle和sqlserver判空函数区别
2011-07-26 14:18 1404sqlserver 判空函数: isnull(v.name ... -
oracle工作常用技巧
2011-05-27 14:18 916导入数据 1:导入库时,先登录控制台 http:// ...
相关推荐
pimpinella_3cd_01_0716
FIB English learning
X86-jq安装包
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
大圣挪车小程序1.3.5 前端
Manus.im 产品及开发团队研究报告.pdf
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
sun_3ck_01a_0918
下载 1. 单击“立即下载”,以下载该文件。 2. 出现“文件下载”窗口后,单击“保存”,以将文件保存到硬盘。 安装 1. 浏览至文件下载目标位置并双击新下载的文件。 2. 仔细阅读对话窗口中显示的发布信息。 3. 下载并安装对话窗口中标识的任何必备项,然后再继续。 4. 单击“Install”(安装)按钮。 5. 按照其余提示执行更新。 安装 1. 将解压的文件复制到可访问Windows的介质。 2. 将系统重新引导至Windows操作系统。 3. 打开“服务器管理器”->“设备管理器”->“存储控制器”,然后单击“PERC控制器”。 5. 单击“更新驱动程序软件”,并按照提示更新驱动程序。 4. 重新引导系统以使更改生效。
支持所有操作系统一键安装。
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
swanson_01_1106
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
sun_3ck_01_0919
各城市方言距离数据-中山大学岭南学院产业与区域经济研究中心 方言距离是指两种或多种方言之间的相似程度或差异程度。参考中山大学岭南学院产业与区域经济研究中心的刘毓芸等(2015)文献。他们基于方言树图,并参考《汉语方言大词典》和《中国语言地图集》对方言的划分,将汉语方言从宽泛到具体分为以下几个层级:汉语→方言大区→方言区→方言片。为了量化县与县之间的方言差异,他们采用了一种赋值方法: 若它们分属不同方言大区,则距离为3。: 若两个县同属一个方言片,则它们之间的方言距离为0; 若两个县属于同一方言区但不同方言片,则距离为1; 若它们属于同一方言大区但不同方言区,则距离为2; 方言距离是一个反映方言之间相似程度或差异程度的重要指标,它在语音识别、方言研究等领域具有广泛的应用价值。 参考文献:[1]刘毓芸, 徐现祥, 肖泽凯. 2015. 劳动力跨方言流动的倒U型模式[J]. 经济研究, 50(10): 134-146+162. 指标 语系、语族、方言大区、方言区/语支、方言片/语种、Supergroup、Dialect、group、Sub-dialect、groupPref_1、Pref_2、DiaDist、PrefCode_1、PrefCode_2等等。
基于PCA算法的人脸识别MATLAB源码
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
lim_3ck_01a_0518