- The COUNT Method: 用于计算 associative array, nested table, or VARRAY 中元素的个数,使用 DELETE or TRIM 将减少 COUNT
/*
* COUNT method
*/
declare
type my_varray is varray(3) of varchar2(20);
l_varray my_varray := my_varray();
begin
l_varray.extend(3);
l_varray(1) := 'aaa';
l_varray(2) := 'bbb';
l_varray(3) := 'ccc';
for var_index in 1..l_varray.count loop
dbms_output.put_line(l_varray(var_index));
end loop;
end;
- The DELETE Method: DELETE 用于删除 collection 中的一个、多个或者全部元素
- The EXISTS Method: 判断 collection 中的指定行是否存在,如果以前存在,后来被 DELETE 了,那也返回 false
/*
* DELETE method and EXISTS method
*/
declare
type my_nestedTable is table of varchar2(20);
l_nestedTable my_nestedTable := my_nestedTable();
var_temp varchar2(20);
index_num number;
begin
l_nestedTable.extend(3);
l_nestedTable(1) := 'aaa';
l_nestedTable(2) := 'bbb';
l_nestedTable(3) := 'ccc';
-- delete one item
l_nestedTable.delete(2);
index_num := l_nestedTable.first;
for var_index in 1..l_nestedTable.count loop
-- check the exists item
if l_nestedTable.exists(index_num) then
--l_nestedTable.exists(var_index)
dbms_output.put_line(l_nestedTable(index_num));
else
dbms_output.put_line('delete item');
end if;
index_num := l_nestedTable.next(index_num);
end loop;
end;
- The EXTEND Method: 用于为 nested table or VARRAY 分配空间
1.不加参数,分配一个 null element
2.EXTEND(n),分配 n 个 null element
3.EXTEND(n,i),分配 n 个和第 i 值相同的 element,这对于有 NOT NULL 限制的 element
- The FIRST and LAST Methods: 分别返回 COLLECTION 中可用的最低和最高下标,被 DELETE 的不会显示
/*
* EXTEND method, FIRST method and LAST method
*/
declare
type my_nestedTable is table of varchar2(20);
type my_varray is varray(2) of varchar2(20);
l_nestedTable my_nestedTable := my_nestedTable();
l_varray my_varray := my_varray();
begin
-- init neseted table
l_nestedTable.extend(2);
l_nestedTable(1) := 'nestedTable1';
l_nestedTable(2) := 'nestedTable2';
-- init varray
l_varray.extend(2);
l_varray(1) := 'varray1';
l_varray(2) := 'varray2';
-- the last and first method
for var_index in l_varray.first..l_varray.last loop
dbms_output.put_line(l_varray(var_index)||'--'||l_nestedTable(var_index));
end loop;
end;
- The LIMIT Method: 返回 VARRAY 的最大数目限制,如果用于 nested tables or to associative arrays 将返回 NULL
- The PRIOR and NEXT Methods: 如果应用于初始化了但为空的 COLLECTION 时,返回 null;如果 i 大于等于 COUNT,则 NEXT 返回 null;如果 i 小于等于 FIRST,则 PRIOR 返回 null
/*
* LIMIT method, PRIOT method and NEXT method
*/
declare
type my_varray is varray(3) of varchar2(20);
type my_table is table of varchar2(20) index by binary_integer;
l_varray my_varray := my_varray();
l_table my_table;
begin
l_varray.extend(2);
l_varray(1) := 'varray1';
l_varray(2) := 'varray2';
-- limit method
dbms_output.put_line(l_varray.limit||'--'||l_table.limit);
l_varray.extend(1);
dbms_output.put_line(l_varray.limit);
for var_index in l_varray.first..l_varray.last loop
-- prior method and next method
dbms_output.put_line(l_varray.prior(var_index)||'---'||l_varray.next(var_index));
end loop;
end;
- The TRIM Method: 由于删除 nested table or VARRAY 末尾的 n 行,如果不加参数,删除最后一行,如果用于 associative array 将产生编译时错误
/*
* TRIM method
*/
declare
type my_nestedTable is table of varchar2(20);
l_nestedTable my_nestedTable := my_nestedTable();
begin
-- init nested table
l_nestedTable.extend(3);
l_nestedTable(1) := 'nestedTable1';
l_nestedTable(2) := 'nestedTable2';
l_nestedTable(3) := 'nestedTable3';
-- delete last two row
l_nestedTable.trim(2);
-- print
for var_index in l_nestedTable.first..l_nestedTable.last loop
dbms_output.put_line(l_nestedTable(var_index));
end loop;
end;
相关推荐
oracle sql集合
Oracle三种集合数据类型的比较
oracle更加支持集合的应用,详细讲述了三种集合的类型:嵌套表、关联数组、varray集合。以丰富实用的例子进行了具体分析。
学Oracle的好东西,适合初学者,集合了大部分基本操作命令的实现
oracle 创建表空间和用户; oracle job的创建及相关命令; oracle 触发器或存储过程中执行外部exe程序; oracle 导入导出; oracle 删除所有表的数据; sqlserver 读取excel
oracle集合union、union all、intersect、minus
自己遇到的oracle问题,以及网上的解决方案。
Oracle集合操作函数union、intersect、minus.docx
oracle 常用命令_oracle 命令大全_oracle命令集合_oracle基本命令 非常方便,带查询功能,能很方便的查询你要找的oracle命令写法
本资源涵盖知识(包括使用案例):Oracle集合运算,交集、并集、补集、差集. 集合运算就是将多个结果集组合成一个结果集。
Oracle资料大全(集合)Oracle资料大全(集合)Oracle资料大全(集合)Oracle资料大全(集合)
Java调用oracle函数返回oracle类(类似)集合
集合Oracle sql 最常用的函数和使用方法
Oracle命令集合 里面有各种常用语句 例子 创建实例等等命令,应有尽有
linux安装oracle文档集合 包含linux中安装oralce文档 linux基本操作 linux基础宝典 需要的rpm包 创建虚拟机等等文档
压缩包中包含:Oracle.ManagedDataAccess.EntityFramework.dll ,Oracle.ManagedDataAccess.dll和 Oracle.ManagedDataAccess.DTC.dll(64位和32位)
Oracle资料大集合
oracle 高级教程-深入学习集合 oracle 高级教程-深入学习集合
个人收集和总结oracle学习资料集合 希望能够对的起您的3分,因为本人也是要学习,也需要下别人的资源,无奈之举,希望大家理解,希望多认识先学习java和oracle的知己。 (包括DBA培训讲义,交流大纲等)
Oracle集合类型输出参数的PLSQL存储过程及其Java调用.docxOracle集合类型输出参数的PLSQL存储过程及其Java调用.docx