Oracle存储过程-自定义数据类型,集合,遍历取值
0.前言
在Oracle的存储过程中,可能会遇到数据处理,假如我们目前的功能在一个Packages中
Packages封装了多个不同功能的Procedure,我们在一个Procedure里面进行统计
在另外一个Procedure进行计算 这就需要一个存放结果集的地方
以前的解决方案是:建立了一个临时表,数据统计出来后,放入临时表中
在另外一个Procedure中取出来数据,再进行计算 这样需要读写操作 浪费性能
我们可以使用Oracle的自定义数据类型去创建集合,进行操作
1.Packages
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
create or replace package test_lu is -- Author : LUJIANING -- Created : 2014-3-12 11:27:34 -- Purpose : -- Public type declarations procedure test1; procedure test2; procedure test3; end test_lu; |
2.Packages bodies
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
create or replace package body test_lu is ---创建一个自定义数据类型 TYPE c_user IS RECORD ( id number, name varchar2(30) ); ---根据自定义数据类型创建一个集合 TYPE c_user_array IS TABLE OF c_user INDEX BY BINARY_INTEGER; ---集合对象 user_array c_user_array; ---数据对象 user c_user; ---计数器 v_counter number; procedure test1 is begin user .id:=1; user . name := 'luu' ; user_array( user .id):= user ; user .id:=2; user . name := 'lii' ; user_array( user .id):= user ; end ; procedure test2 is begin for v_counter in 1..user_array. count loop DBMS_OUTPUT.put_line(user_array(v_counter).id|| '...' ||user_array(v_counter). name ); end loop; end ; procedure test3 is begin test1; test2; end ; end test_lu; |
3.输出结果
1
2
|
1...luu 2...lii |
Oracle存储过程-自定义数据类型,集合,遍历取值的更多相关文章
- js动态添加-表格逐行添加、删除、遍历取值
关于js对表格进行逐行添加,今天抽空整理了一下:新建一个html文件(没有编辑器的可以新建一个demo.txt文件,然后改后缀名为demo.html),把下面代码全部贴进去即可.功能包括:表格添加一行 ...
- jQuery循环遍历取值
1:循环遍历取值 var arr = new Array(); $(".plus-tag a span").each(function(i) { arr[i] = $(this). ...
- Map 遍历取值及jstl的取值
Map 遍历取值及jstl的取值 学习了:http://blog.csdn.net/yanjiaye520/article/details/17354239 1.Java map的便利取值 Java代 ...
- Java数据类型及对应取值范围
Java数据类型及对应取值范围 在Java中,数据类型分为两大种:基本数据类型(值类型)和包装类型(引用数据类型).基本数据类型不是对象,不能调用toString().hashCode().getCl ...
- .net 存储过程中的 output参数取值问题
当存储过程中多个结果需要返回时经常需要用到output类型的参数,如果存储过程没有返回结果集只是输出output类型参数时使用如下代码: db.AddOutParameter(dbCmd, " ...
- freemarker 前端 判读 遍历 取值
<#if content?length gt 100> ${content[0..100]}... <#else> ${content} </#if> freema ...
- Entry键值对对象和Map集合遍历键值对方式
我们已经知道,Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在IMap 中是一一对应关系, 这一对对象又称做Map 中的一个Entry(项).Entry将键值对的对应 ...
- oracle常用自定义函数集合
1.Oracle 判断值是否为数字的函数CREATE OR REPLACE FUNCTION ISNUMBER(MyStr VARCHAR2) RETURN NUMBERIS STR VARCHAR ...
- XML文件标签名一致,而属性值不同,如何遍历取值写法 摘录
<EssentialFunctions> <Qualification description="We Offer" source="AdDe ...
随机推荐
- ls 只显示目录
只显示目录: ls -d */ 在实际应用中,我们有时需要仅列出目录,下面是 4 种不同的方法. 1. 利用 ls 命令的 -d 选项: $ ls -d */ 2. 利用 ls 命令的 -F 选项: ...
- php计算中英文混搭字符串长度
preg_match_all('/./us', $content, $match); count($match[0])://中英文按相同字符数计算
- present一个半透明的ViewController的方法
RecommandViewController *recommandVC = [[RecommandViewController alloc]init]; if([[[UIDevice current ...
- springMVC中利用model在JSTL进行回填值
1.ringMVC中利用model回填值 后台中,利用model返回值,如 model.addAttribute("MS_info" , MS_info); 前台回填值: text ...
- 如何在C#中获得input文本框中的值
前台 <input type="text" id="txt" name="txtn" style="width:213px& ...
- 【转】HTTP 头部解释,HTTP 头部详细分析,最全HTTP头部信息
HTTP 头部解释 ========================================================================================== ...
- collectionView,tableView的细节处理
1.设置collectionView的高度 1.1为什么要设置高度? collectionView是在tableView的footView里面 , tableView能滚动,collectionVie ...
- C# 对象的序列化与反序列化 (DataContractJsonSerializer)
项目引用 System.Runtime.Serialization.dll 添加命名空间 using System.Runtime.Serialization.Json; 1.序列化对象,得到Json ...
- [转]装完CentOS后,重新开机启动后显示: Initial setup of CentOS Linux 7 (core)
转:装完Centos7提示Initial setup of CentOS Linux 7 (core) 在用U盘装完CentOS后,重新开机启动后显示: Initial setup of Cent ...
- Python数据
读取文件中数据的最高分数 highest_score=0 result_f=open("results.txt") for line in result_f: (name,scor ...