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的更多相关文章

  1. Struts2返回JSON对象的方法总结

    如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择.而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好 ...

  2. (转)Struts2返回JSON对象的方法总结

    转自:http://kingxss.iteye.com/blog/1622455 如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选 ...

  3. 82.常用的返回QuerySet对象的方法使用详解:all,select_related

    1. all: 返回这个ORM模型的QuerySet对象. articles = Article.objects.all() print(articles) 2.select_related: 查找数 ...

  4. 79.常用的返回QuerySet对象的方法使用详解: filter, exclude,annotate

    返回新的QuerySet的常用方法: 1.filter: 将满足条件的数据提取出来,返回一个新的QuerySet 以下所使用的模型article,category,定义模型models.py文件中,示 ...

  5. 85.常用的返回QuerySet对象的方法使用详解:defer,only

    defer(),only(): 这两个方法都会返回一个"QuerySet"对象,并且这个"QuerySet"中装的是模型,不像values()和values_l ...

  6. 84.常用的返回QuerySet对象的方法使用详解:select_related, prefetch_related

    1.select_related: 只能用在一对多或者是一对一的关联模型之间,不能用在多对多或者是多对一的关联模型间,比如可以提前获取文章的作者,但是不能通过作者获取作者的文章,或者是通过某篇文章获取 ...

  7. 81.常用的返回QuerySet对象的方法使用详解:values和values_list

    values: 指定提取的数据库表中的字段值,如果不指定任何的字段名的话,默认情况下会提取所有的字段值.但是需要注意的是使用values返回的QuerySet对象中包括的是一个个的字典. 1.提取与A ...

  8. 80.常用的返回QuerySet对象的方法使用详解:order_by

    order_by: 将模型生成的表按照某个字段进行排序,默认情况下,按照升序的顺序排序,如果想要按照降序的顺序排序可以在字段的前面加一个"-",加一个负号就可以进行反转. mode ...

  9. ModelAndView返回json对象的方法

    这是在spring4之后. @RequestMapping(value = "/returnjson") public ModelAndView getfsd(){ ModelAn ...

随机推荐

  1. 在keil中添加stc系列单片机型号(模型)方法

    1.下载安装stc-isp烧录软件: 官网:http://www.gxwmcu.com/ 2.打开使用stc-isp软件,并导入stc官方器件库: 注意:一定要找到包含有C51和UV4的文件夹 3.显 ...

  2. IIS web搭建之虚拟主机

    IIS web搭建之虚拟主机 虚拟目录:能将一个网站的文件分散存储在同一个计算机的不同目录和其他计算机. 使用虚拟目录的好处: 1.将数据分散保存到不同的磁盘或者计算机上,便于分别开发和维护. 2.当 ...

  3. react-router详细解释

    react-router的理解 react的一个插件库,专门用来实现一个SPA应用(单页Web应用(single page web application,SPA)整个应用只有一个完整的页面,点击页面 ...

  4. LOJ #6060. 「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set

    有趣的思博套路题,想到了基本上加上个对线性基的理解就可以过了 首先考虑到这个把数分成两半的分别异或的过程不会改变某一位上\(1\)的总个数 因此我们求出所有数的\(\operatorname{xor} ...

  5. #Java学习之路——基础阶段二(第四篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  6. Redis常用数据类型和事物以及并发

    Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...

  7. Kubernetes 笔记 11 Pod 扩容与缩容 双十一前后的忙碌

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. Hi,大家好, ...

  8. 从壹开始微服务 [ DDD ] 之五 ║聚合:实体与值对象 (上)

    前言 哈喽,老张是周四放松又开始了,这些天的工作真的是繁重,三个项目同时启动,没办法,只能在深夜写文章了,现在时间的周四凌晨,白天上班已经没有时间开始写文章了,希望看到文章的小伙伴,能给个辛苦赞

  9. springboot~mongo内嵌集合的操作

    对于mongodb的内嵌对象的各种操作大叔在.net平台时已经说过,同时大叔也自己封装过mongo的仓储,使用也都很方便,而在java springboot框架里当然也有对应的方法,下面主要说一下,希 ...

  10. Redis集群伸缩

    集群扩容 前提准备,目前集群中一共有6台机器,端口号分别是6381.6382.6383.6384.6385.6386 1) 准备新节点 准备两个新节点,端口号为6387和6388,配置和以前集群配置一 ...