oracle 数组类型
create or replace function my_test(p_str varchar2)
return number
as
--普通变量
v_var varchar2(1000);
--固定长度数组
type v_ar is varray(10) of varchar2(30);
my_ar v_ar:=v_ar('g','m','d','龚','帅'); --可变长度数值
type type_array is table of varchar2(20) index by binary_integer;
var_array type_array; --类似二维数组
type serv_array is table of itmis_pri_serv_tbl%rowtype index by binary_integer;
var_serv serv_array; --记录块,保存一条记录的变量,类似C的struct
TYPE t_myRecord is record (
Field1 number,
Field2 varchar2(50));
var_record t_myRecord; begin
v_var := 'hello world';
dbms_output.put_line(v_var); for i in 1..my_ar.count
loop
dbms_output.put_line(my_ar(i));
end loop;
------------------------------------------
var_array(1):='aa';
var_array(2):='bb'; --下标必须是连续的
for i in 1..var_array.count
loop
dbms_output.put_line( var_array(i)); end loop;
-------------------------------------------- 可以作为一个临时表变量来使用
--select * bulk collect into var_serv from itmis_pri_serv_tbl where year =2013; --类似二维数组
select * bulk collect into var_serv from itmis_pri_serv_tbl ; --二维数组的访问
for i in 1..var_serv.count loop
dbms_output.put_line(var_serv(i).serv_id);
dbms_output.put_line(var_serv(i).status);
end loop; --记录快访问
WITH temp(id,name) as(
select 1,'sam' from dual union all
select 2,'tom' from dual union all
select 3,'Kelly' from dual
)
Select id,name
Into var_record
From temp
where id = 1
;
dbms_output.put_line('var_record:'||var_record.Field1||' '||var_record.Field2) ; return length(p_str); end; /*
1.COUNT 返回集合中元素的个数
2.DELETE 删除集合中所有元素
3.DELETE(x) 删除元素下标为x的元素 对VARRAY非法
4.DELETE(x,y) 删除元素下标从X到Y的元素 对VARRAY非法
5.EXIST(x) 如果集合元素x已经初始化,则返回TRUE, 否则返回FALSE
6.EXTEND 在集合末尾添加一个元素 对Index_by非法
7.EXTEND(x) 在集合末尾添加x个元素 对Index_by非法
8.EXTEND(x,n) 在集合末尾添加元素n的x个副本 对Index_by非法
9.FIRST 返回集合中的第一个元素的下标号,对于VARRAY集合始终返回1。
10.LAST 返回集合中最后一个元素的下标号, 对于VARRAY返回值始终等于COUNT.
11.LIMIT 返回VARRY集合的最大的元素个数 Index_by集合和嵌套表无用
12.NEXT(x) 返回在第x个元素之后及紧挨着它的元素值,如果x是最后一个元素,返回null.
13.PRIOR(x) 返回在第x个元素之前紧挨着它的元素的值,如果x是第一个元素,则返回null。
14.TRIM 从集合末端开始删除一个元素 对于index_by不合法
15.TRIM(x) 从集合末端开始删除x个元素
var_array.next(3); //返回var_array(3)
*/
oracle 数组类型的更多相关文章
- java plsql 调用oracle数组类型
首先当然是在oracle中建立type CREATE OR REPLACE TYPE cux_proxy_bid_award_rec IS OBJECT ( trading_partner_id NU ...
- oracle学习之路(二)------数组类型/记录类型的使用
Oracle记录类型介绍 RECORD:用户自己定义数据类型,由单行多列的标量构成的复合数据类型.它将一个或多个标量封装成一个对象进行操作记录不能够总体拿来比較也不能够总体推断为空.能够总体拿来赋值. ...
- java 实现往oracle存储过程中传递array数组类型的参数
注:本文来源于 < java 实现往oracle存储过程中传递array数组类型的参数 >最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码 ...
- oracle数组定义与使用
定义固定长度的一维数组 type type_array is varray(10) of varchar2(20); 1.varray(10)表示定义长度为10的数组 2.varchar2(20)表示 ...
- oracle数组学习资料
--oracle数组,所谓数组就是 字段的 个数,数组应该很有用 --可变数组 declare type v_ar is varray(10) of varchar2(30); my_ar v ...
- Oracle集合类型
Oracle集合类型介绍 集合类型 1. 使用条件: a. 单行单列的数据,使用标量变量 . b. 单行多列数据,使用记录 c. 单列多行数据,使用集合 *集 ...
- 转载:oracle 自定义类型 type / create type
标签:type create oracle object record 一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarc ...
- oracle type类型
转载 http://blog.sina.com.cn/s/blog_6cfb6b090100ve92.html 转自网络,具体用法我会再细化 1.概念 方法:是在对象类型说明中用关键字 MEM ...
- oracle 自定义类型 type / create type
一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2. 2.数值类型.如:int.number(p,s).integ ...
随机推荐
- oracle跟踪事件(dump)总结
一.Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日志切换.错误消息 ...
- c# winform快捷键设置
设置 Form 的 KeyPreview=true 然后在Form 的案件事件里判断按钮类型进行分别调用就可以了 private void Form1_KeyDown(object sender, K ...
- 标准化命名CSS类,持续更新
放链接.持续化更新,以后可能会用上.https://github.com/zhangxinxu/zxx.lib.css/blob/master/zxx.lib.css
- Mingyang.net:如何获取所有的请求参数?
第一种方法:用@RequestParam. @RequestMapping(params="m=update", method=RequestMethod.POST) public ...
- bash 学习笔记
shell:能够操作应用程序的接口就称为shell. Linux由C编写的. TAB键的使用 alias:设置别名
- Words in Coding Theory
Lemma d(x.y) wt(c,0) self-dual self-orthogonal even prime wt(C) matrix column permute permutation ge ...
- 【转】关系映射文件***.hbm.xml详解
http://blog.sina.com.cn/s/blog_7ffb8dd5010144yo.html 附.Oracle使用标准.可变长度的内部格式来存储数字.这个内部格式精度可以高达38位. NU ...
- 通过srvctl add命令添加database信息到srvctl管理器-转
这是我在实际中遇到的一个问题,rac+dg架构将备库切为主库,srvctl管理器中没有database信息. 对于dbca创建的数据库,srvctl中包含了数据库和实例的信息.但是对于备份恢复的RAC ...
- 深入研究java.lang.ThreadLocal类
一.概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许 ...
- linux下USB转串口驱动的安装
ubuntu10.04,usb串口用的是moxa 1110 搞了半天没有驱动... 去官方下了个:http://www.moxa.com/support/sarch_result.aspx?type= ...