当前位置: 首页 > news >正文

pl/sql中使用table()函数的例子

1.创建type,必须是单独的type,在pkg中的不行

CREATE OR REPLACE TYPE obj_txb_xb97 as TxbLE OF rec_xb97;

CREATE OR REPLACE TYPE rec_xb97 AS OBJECT
(
xoe001 NUMBER(18),
xxe901 NUMBER(18),
xxe140 VARCHAR2(3),
xxe210 VARCHAR2(3),
xxb210 NUMBER(18, 2),
xxb130 NUMBER(18, 2),
xxb019 VARCHAR2(3),
xxb020 VARCHAR2(3),
xxb021 VARCHAR2(3),
xxb022 VARCHAR2(3),
xxb200 VARCHAR2(20),
xxe151 VARCHAR2(3),
xxe099 VARCHAR2(3)
);

2.创建转换

/****************************
返回xb97对象用于txble函数
written by:wonder
modified by:
****************************/
FUNCTION fun_a_returnxb97type(prm_txb_xb97 IN typ_txb_xb97)
RETURN obj_txb_xb97 IS
v_row rec_xb97 := NULL;
t_xb97 obj_txb_xb97 := obj_txb_xb97();
BEGIN
-- 初始化

FOR i IN 1 .. prm_txb_xb97.COUNT LOOP
t_xb97.EXTEND();
v_row := NEW rec_xb97(prm_txb_xb97(i).xoe001,
prm_txb_xb97(i).xxe901,
prm_txb_xb97(i).xxe140,
prm_txb_xb97(i).xxe210,
prm_txb_xb97(i).xxb210,
prm_txb_xb97(i).xxb130,
prm_txb_xb97(i).xxb019,
prm_txb_xb97(i).xxb020,
prm_txb_xb97(i).xxb021,
prm_txb_xb97(i).xxb022,
prm_txb_xb97(i).xxb200,
prm_txb_xb97(i).xxe151,
prm_txb_xb97(i).xxe099);
/* v_row.xoe001 := prm_txb_xb97(i).xoe001;
v_row.xxe901 := prm_txb_xb97(i).xxe901;
v_row.xxe140 := prm_txb_xb97(i).xxe140;
v_row.xxe210 := prm_txb_xb97(i).xxe210;
v_row.xxb210 := prm_txb_xb97(i).xxb210;
v_row.xxb130 := prm_txb_xb97(i).xxb130;
v_row.xxb019 := prm_txb_xb97(i).xxb019;
v_row.xxb020 := prm_txb_xb97(i).xxb020;
v_row.xxb021 := prm_txb_xb97(i).xxb021;
v_row.xxb022 := prm_txb_xb97(i).xxb022;
v_row.xxb200 := prm_txb_xb97(i).xxb200;
v_row.xxe151 := prm_txb_xb97(i).xxe151;
v_row.xxe099 := prm_txb_xb97(i).xxe099;*/
t_xb97(i) := v_row;
END LOOP;

RETURN t_xb97;

END;

3.使用table()

-- 对table函数的使用

obj_xb97 := fun_a_returnxb97type(prm_txb_xb97);
SELECT 0 xoe001,
xxe901,
xxe140,
xxe210,
SUM(nvl(xxb210, 0)),
0,
xxb019,
xxb020,
xxb021,
xxb022,
xxb200,
xxe151,
xxe099 BULK COLLECT
INTO prm_txb_xb97
FROM TAbLE(obj_xb97)
HAVING SUM(nvl(xxb210, 0)) <> 0
GROUP BY xxe901,
xxe140,
xxe210,
xxb019,
xxb020,
xxb021,
xxb022,
xxb200,
xxe151,
xxe099;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数据科学导论python语言实现_数据科学导论:python语言实现
  • Win32病毒入门--ring3篇
  • python通过ip池爬_Python爬虫代理IP池实现方法
  • c#数字图像处理算法典型实例程序实例下载_【数字图像处理】学习halcon视觉必会的入门知识...
  • 有感于《清华计算机系旁听有感》
  • flex 间距_新品汇总|再生纤维素膜超滤管、可调间距移液器、 空气采样器、多光谱棱镜相机、高速高通量细胞计数仪...
  • 书讯 -- Pro SQL Server 2005 High Availability
  • docker 端口映射 udp_钢炮不是炮 qb钢炮特别版群晖docker手把手图文教程
  • 艰难的Shader系统(二) Node based?
  • python多进程优化_python多进程操作实例
  • Sun培训开放日归来
  • html5代码_HTML5与HTML之间有什么区别?
  • nginx动静分离配置_nginx实现动静分离的负载均衡集群
  • 乌龙钻白玉 白虎卧沙滩
  • js代码效率和java代码执行效率哪个更高_这35个Java代码优化细节,你用了吗?
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 〔开发系列〕一次关于小程序开发的深度总结
  • android 一些 utils
  • Django 博客开发教程 8 - 博客文章详情页
  • java中的hashCode
  • Python socket服务器端、客户端传送信息
  • Python学习笔记 字符串拼接
  • Vue ES6 Jade Scss Webpack Gulp
  • 浮动相关
  • 基于组件的设计工作流与界面抽象
  • 解析带emoji和链接的聊天系统消息
  • 力扣(LeetCode)965
  • 想写好前端,先练好内功
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 再谈express与koa的对比
  • 进程与线程(三)——进程/线程间通信
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (5)STL算法之复制
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (九)信息融合方式简介
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)linux 命令大全
  • (转)Sql Server 保留几位小数的两种做法
  • (转)视频码率,帧率和分辨率的联系与区别
  • ./configure,make,make install的作用(转)
  • .aanva
  • .cfg\.dat\.mak(持续补充)
  • .gitignore文件使用
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .Net Memory Profiler的使用举例
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net6 webapi log4net完整配置使用流程
  • .NET大文件上传知识整理
  • .net项目IIS、VS 附加进程调试
  • @NoArgsConstructor和@AllArgsConstructor,@Builder