返回表对象的方法之一--bulk collect into
1.创建表对象的类型(oracle Types类目录下)
create or replace type obj_table1 as object
(
xzq nvarchar2(19),
mj number(38,8),
gjzrd number(5),
gjlyd number(5),
gjjjd number(5)
)
2.创建虚拟表 (oracle Types类目录下)
create or replace type t_table1 is table of obj_table1
3.创建oracle函数
create or replace function GDZL_XJFDDY_FX(ksnd integer,jsnd integer)
return t_table1
is
v_test T_TABLE1 := T_TABLE1();
flag varchar2(50);
flag1 varchar2(50);
d integer:=ksnd-1;
cout varchar2(2000);
cout1 integer;
cmd varchar2(4000);
xxc varchar2(50);
xxl varchar2(50);
xxxl varchar2(50);
xxxxc varchar2(50);
cmd_sql varchar(4000);
begin
if ksnd is null or jsnd is null then
return v_test;
end if;
xxc:='XJFDDY33';
xxxxc:='XJLXFDDY33';
loop
<<here>>
d:=d+1;
if d>jsnd then
exit;
end if;
xxl:=xxc||d;
xxxl:=xxxxc||d;
cmd:='select count(1) from all_all_tables t where t.owner=''SDE'' and t.table_name='''||xxl||'''';
execute immediate cmd into cout;
cmd:='select count(1) from all_all_tables t where t.owner=''SDE'' and t.table_name='''||xxxl||'''';
execute immediate cmd into cout1;
if cout>0 and cout1>0 then
flag:='SDE.'||xxl||' t where 1=1';
flag1:='SDE.'||xxxl||' t where 1=1';
else
goto here;
end if;
cmd:='select xzq,mj,gjzrd,gjlyd,gjjjd from (select substr(t.dybh,1,6) as xzq,round(sum(nvl(t.tbdlmj,0))/10000,2) as mj,t.gjzrd,t.gjlyd,t.gjjjd
from '||flag||' group by t.dlmc,substr(t.dybh,1,6),t.gjzrd,t.gjlyd,t.gjjjd
union all
select substr(t.dybh,1,6) as xzq,round(sum(nvl(t.mj,0))/10000,2) as mj,t.gjzrd,t.gjlyd,t.gjjjd
from '||flag1||' group by substr(t.dybh,1,6),t.gjzrd,t.gjlyd,t.gjjjd )';
if cmd_sql is null then
cmd_sql:=cmd;
else
cmd_sql:=cmd||' union all '||cmd_sql;
end if;
end loop;
if cmd_sql is not null then
EXECUTE IMMEDIATE 'select OBJ_TABLE1(xzq,mj,gjzrd,gjlyd,gjjjd) from ('||cmd_sql||')' bulk collect into v_test;
end if;
return v_test ;
end GDZL_XJFDDY_FX;
返回表对象的方法之一--bulk collect into的更多相关文章
- Struts2返回JSON对象的方法总结
如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择.而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好 ...
- (转)Struts2返回JSON对象的方法总结
转自:http://kingxss.iteye.com/blog/1622455 如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选 ...
- 82.常用的返回QuerySet对象的方法使用详解:all,select_related
1. all: 返回这个ORM模型的QuerySet对象. articles = Article.objects.all() print(articles) 2.select_related: 查找数 ...
- 79.常用的返回QuerySet对象的方法使用详解: filter, exclude,annotate
返回新的QuerySet的常用方法: 1.filter: 将满足条件的数据提取出来,返回一个新的QuerySet 以下所使用的模型article,category,定义模型models.py文件中,示 ...
- 85.常用的返回QuerySet对象的方法使用详解:defer,only
defer(),only(): 这两个方法都会返回一个"QuerySet"对象,并且这个"QuerySet"中装的是模型,不像values()和values_l ...
- 84.常用的返回QuerySet对象的方法使用详解:select_related, prefetch_related
1.select_related: 只能用在一对多或者是一对一的关联模型之间,不能用在多对多或者是多对一的关联模型间,比如可以提前获取文章的作者,但是不能通过作者获取作者的文章,或者是通过某篇文章获取 ...
- 81.常用的返回QuerySet对象的方法使用详解:values和values_list
values: 指定提取的数据库表中的字段值,如果不指定任何的字段名的话,默认情况下会提取所有的字段值.但是需要注意的是使用values返回的QuerySet对象中包括的是一个个的字典. 1.提取与A ...
- 80.常用的返回QuerySet对象的方法使用详解:order_by
order_by: 将模型生成的表按照某个字段进行排序,默认情况下,按照升序的顺序排序,如果想要按照降序的顺序排序可以在字段的前面加一个"-",加一个负号就可以进行反转. mode ...
- ModelAndView返回json对象的方法
这是在spring4之后. @RequestMapping(value = "/returnjson") public ModelAndView getfsd(){ ModelAn ...
随机推荐
- Vue.js 学习笔记 第1章 初识Vue.js
本篇目录: 1.1 Vue.js 是什么 1.2 如何使用Vue.js 本章主要介绍与Vue.js有关的一些概念与技术,并帮助你了解它们背后相关的工作原理. 通过对本章的学习,即使从未接触过Vue.j ...
- 自定义超链接动画---transition
效果图: <a href="#"> <span>HTML</span> </a> a { position: relative; t ...
- ArcGIS注册数据库问题分析
本文是'猴妹'师妹授权给我来发表的,介绍都是师妹的研究成果,在此,非常感谢'猴妹'师妹. 用ArcGIS Server在发布地图服务时,注册数据库是很常见的,几年前就开始注册数据库,直到昨天,才有点顿 ...
- Centos7搭建虚拟用户FTP
yum install -y vsftpd #安装ftp服务 useradd -s /sbin/nologin virftp #创建用户,用于ftp服务 vim /etc/vsftpd/vsftpd_ ...
- 【RL-TCPnet网络教程】第39章 RL-TCPnet之TFTP服务器
第39章 RL-TCPnet之TFTP服务器 本章节为大家讲解RL-TCPnet的TFTP服务器应用,学习本章节前,务必要优先学习第38章的TFTP基础知识.有了这些基础知识之后,再搞本章节会 ...
- MySQL 表名和字段名不要使用保留字命名
今天测试代码,新建了一张 Order 表,使用的 MySQL 数据库. 插入数据的时候报语法错误,我检查了好几遍,也没看出 SQL 语句哪里有问题,于是从 MyBatis 的日志里拷贝出 SQL 语句 ...
- Vue(day3)
一.Vue中的ajax:vue-resource和axios vue-resource是Vue实现异步加载的官方库,即Vue中的ajax.在Vue2.js之后vue-resource将不再更新维护,所 ...
- 知名区块链人脸识别公司iFace Chain [爱妃链] 支招,如何防止钱包数字币被盗...
最近众多钱包发行方跑路频发,让非常多的用户蒙受巨大经济损失,知名区块链人脸识别公司iFace Chain [爱妃链] 前日做客某区块链媒体为网友支招,如何防止钱包数字币被盗. 那么,用户怎么降低Tok ...
- javascript 实现数据结构 - 栈
栈是一种遵从后进先出(LIFO)原则的有序集合.新添加的或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底.栈就好像是一个底部密封的盒子,我们往里面 ...
- Java~时间戳小知识
大叔对java时间戳使用的总结 Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒 ...