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 ...
随机推荐
- mac下Android开发环境搭建
之前一段时间在学习ios的开发,近一段时间想着也接触下Android开发,以来加深对移动端开发的理解.这里根据自己配置Android开发环境的过程,比较详细的来总结下自己的安装过程,希望对一些正准备配 ...
- 打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹
打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问 在win98,winme,win2000,win2003下都能正常上传文件夹,但在winxp+sp2下同样的文件夹就可能出现问题 1. 打开 ...
- $.ajax()引发的对Deferred的总结
传统的ajax写法: $.ajax({ url:"1.json", type:"get", success:function(data){}, error:fu ...
- [SQL] 不合并重复数据 union all
select * from A union select * from B --不合并重复行 select * from A union all select * from B --如果要对字段进行排 ...
- [SQL]SQL类似统计功能的sql文
declare @t table(name varchar(),type int) insert into @t union all union all union all union all if ...
- String Format for DateTime
This example shows how to format DateTime using String.Format method. All formatting can be done als ...
- POJ 2112 Optimal Milking 【网络流】【二分】【最短路】
题意: k c m 分别代表挤奶机数量,牛数量,和挤奶机容量. 接下来(n=k+c)n*n的矩阵A,代表挤奶机或者牛的距离,如果对角线都为0,如果非对角线没有直接路相连也为0. 1 <= K & ...
- SQL(Oracle)
http://blog.csdn.net/winter13292/article/details/7011377 SQL 对大小写不敏感! 在 SQL 中增加 HAVING 子句原因是,WHERE ...
- What is Split Brain in Oracle Clusterware and Real Application Cluster (文档 ID 1425586.1)
In this Document Purpose Scope Details 1. Clusterware layer 2. Real Application Cluster (d ...
- python写的battle ship小游戏 - 1.0
最近学python,这是今天写的一个小游戏. from random import randint class Board(object): board = [] def __init__(self, ...