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 数组类型的更多相关文章

  1. java plsql 调用oracle数组类型

    首先当然是在oracle中建立type CREATE OR REPLACE TYPE cux_proxy_bid_award_rec IS OBJECT ( trading_partner_id NU ...

  2. oracle学习之路(二)------数组类型/记录类型的使用

    Oracle记录类型介绍 RECORD:用户自己定义数据类型,由单行多列的标量构成的复合数据类型.它将一个或多个标量封装成一个对象进行操作记录不能够总体拿来比較也不能够总体推断为空.能够总体拿来赋值. ...

  3. java 实现往oracle存储过程中传递array数组类型的参数

    注:本文来源于 <  java 实现往oracle存储过程中传递array数组类型的参数  >最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码 ...

  4. oracle数组定义与使用

    定义固定长度的一维数组 type type_array is varray(10) of varchar2(20); 1.varray(10)表示定义长度为10的数组 2.varchar2(20)表示 ...

  5. oracle数组学习资料

    --oracle数组,所谓数组就是  字段的 个数,数组应该很有用 --可变数组 declare  type v_ar is varray(10) of varchar2(30);   my_ar v ...

  6. Oracle集合类型

    Oracle集合类型介绍   集合类型   1. 使用条件:    a. 单行单列的数据,使用标量变量 .     b. 单行多列数据,使用记录    c. 单列多行数据,使用集合        *集 ...

  7. 转载:oracle 自定义类型 type / create type

    标签:type create oracle object record 一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarc ...

  8. oracle type类型

    转载 http://blog.sina.com.cn/s/blog_6cfb6b090100ve92.html 转自网络,具体用法我会再细化 1.概念    方法:是在对象类型说明中用关键字  MEM ...

  9. oracle 自定义类型 type / create type

    一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2. 2.数值类型.如:int.number(p,s).integ ...

随机推荐

  1. Task.Run Vs Task.Factory.StartNew z

    在.Net 4中,Task.Factory.StartNew是启动一个新Task的首选方法.它有很多重载方法,使它在具体使用当中可以非常灵活,通过设置可选参数,可以传递任意状态,取消任务继续执行,甚至 ...

  2. js 节流函数 throttle

    /* * 频率控制 返回函数连续调用时,fn 执行频率限定为每多少时间执行一次 * @param fn {function} 需要调用的函数 * @param delay {number} 延迟时间, ...

  3. win7系统安装

    系统之家地址:http://www.ghostxp3.com/ Ylmf_Ghost_Win7_x64_CJB_V2016.iso

  4. 单元测试利器之Jtester

    http://kiral.iteye.com/blog/900975 名词解释: Junit:众所周知的单元测试. 官方网址:http://junit.sourceforge.net/.Junit从4 ...

  5. 用Java开发gRPC服务的例子分析

    本文的代码例子来自:https://github.com/grpc/grpc-java  定义服务 这一步与其他语言完全一样,需要定义gRPC的服务.方法.request和response的类型. 完 ...

  6. Centos安装软件小结-20160325

    三种安装包 bin包 rpm包 源码包 1.bin包 1.先赋予权限: chmod 777 *.bin 2.开始安装: ./.bin 2.rpm包(以jdk为例)\ yum search jdk\ y ...

  7. visual studio 中快捷键的使用

    我在使用编辑器的过程中是比较喜欢使用快捷键的,因为这样可以在操作中更加便捷 ①ctrl+k,ctrl+d,代码重排 ②ctrl+k,k就是ctrl键加连续两次k键,添加书签,然后通过ctrl+k,ct ...

  8. 稀疏矩阵乘法加法等的java实现

    原创声明:本文系作者原创,转载请写明出处. 一.前言       前几天由于科研需要,一直在搞矩阵的稀疏表示的乘法,不过最近虽然把程序写出来了,还是无法处理大规模的矩阵(虽然已经是稀疏了).原因可能是 ...

  9. 初探appium之环境搭建

    前段时间一直在折腾python的爬虫,想搞接口自动化.但是写了一个月,发现在我现在的这份的工作中根本接触不到接口.所以就想先放下来,先做点目前能够接触到的,也需要做的东西. 东西越来越多,人手不足.自 ...

  10. 学习练习 java 小题

    Scanner a = new Scanner(System.in); System.out.println("请输入您的分数"); int fen = a.nextInt(); ...