返回表对象的方法之一--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 ...
随机推荐
- js初级入门
javascript的数据类型 (symbol)一.原始数据类型 或 基本数据类型 6种 1,undefined (1,申明未赋值,2,函数没有返回值)2,null (空,不存在)3,number ( ...
- SAP HUM事务代码 HUMAT 之初探
SAP HUM事务代码 HUMAT 之初探 SAP菜单中,该事务代码在这里: 1)如下的inbound delivery号码, Document flow, 已经完成了PGR, 2)执行HUMAT,进 ...
- LeetCode算法题-Rotate String(Java实现)
这是悦乐书的第317次更新,第338篇原创 在开始今天的算法题前,说几句,今天是世界读书日,推荐两本书给大家,<终身成长>和<禅与摩托车维修艺术>,值得好好阅读和反复阅读. 0 ...
- 查找最近公共祖先(LCA)
一.问题 求有根树的任意两个节点的最近公共祖先(一般来说都是指二叉树).最近公共祖先简称LCA(Lowest Common Ancestor).例如,如下图一棵普通的二叉树. 结点3和结点4的最近公共 ...
- Linux下编译安装php7.2
准备工作 所有操作需要在root用户下 安装路径: /usr/local/php 安装PHP 首先要安装如下依赖包 $ yum install -y gcc gcc-c++ make zlib zl ...
- 爬虫框架之Scrapy(二)
递归解析 糗事百科递归解析 在前面的例子里只是爬取了糗事百科热门的第一个页面,但是当我们需要爬取更多的页面时,需要对每个页面的url依次发起请求,然后通过解析的方法进行作者和标题的解析. 我们可以构建 ...
- 你连Nginx怎么转发给你请求都说不清楚,还好意思说自己不是CRUD工程师?
目录 一.Nginx工作原理二.Nginx进程模型三.Nginx处理HTTP请求流程 Nginx 工作原理 Nginx由内核和模块组成,Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅 ...
- 网络协议 16 - DNS 协议:网络世界的地址簿
[前五篇]系列文章传送门: 网络协议 11 - Socket 编程(下):眼见为实耳听为虚 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络 ...
- msql分区
确认mysql服务器是否支持分区表: show plugins; 如果能看到partition则表示能分区. HASH分区的特点: 根据MOD(分区键,分区数)的值把数据行存储到表的不同分区中 数据可 ...
- 值得一看的35个Redis常用问题总结
1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库 ...