当前位置: 首页 > 图文教程 > 数据库 > Oracle > oracle 集合

Oracle
Oracle 9i轻松取得建表和索引的DDL语句
Oracle 8x监控sysdba角色用户登陆情况
PB7 连接 Oracle 的设置方法
Oracle数据库的备份及恢复策略研究
Oracle三种上载文件技术
Oracle建立二进制文件索引的方法
Oracle数据库及应用程序优化开发者网络Oracle
Oracle PL/SQL入门慨述
Oracle PL/SQL入门案例实践
基于Oracle的面向对象技术入门基础简析开发者网络Oracle
PL/SQL编程经验小结开发者网络Oracle
Oracle的数据字典技术简析
基于Oracle的高性能动态SQL程序开发
Oracle9i取得建表和索引的DDL语句
PL/SQL实现Oracle数据库任务调度
Oracle 9i 数据库异常关闭后的启动
Oracle与SQL Server在企业应用的比较
Oracle捕获问题SQL解决CPU过渡消耗
Oracle平台应用数据库系统的设计与开发
Oracle使用PL/SQL操作COM对象

Oracle 中的 oracle 集合


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 52 ::
收藏到网摘: n/a

pl/sql预定义了在varray 和嵌套表实例上进行调用的方法。这些方法能在集合上执行一定的功能。

EXISTS

该函数返回

集合中第一个元素的索引,如果集合为空,返回NULLNULLNULL

Collection.EXISTS(index)

COUNT

该函数集合

元素的数目

Collection.COUNT

DELETE

该过程从嵌套表中删除一个或多个或合部元素

Table_name.DELETE 删除所有元素

Table_name.delete(index)删除指定索引的记录

Table_name.delete(start_index,end_index)删除区间内元素

FIRST

返回集合第一个元素索引,如果集合为空,返回NULL

Collection.FIRST

LAST

返回集合中最后一个元素索引,如果集合为空,返回NULL

Collection. LAST

NEXT

返回集合当前元素的下一个元素的索引,如果它不存在就返回NULL

Collection. NEXT

PRIOR

返回集合当前元素的上一个元素的索引,如果它不存在就返回NULL

Collection. PRIOR

LIMIT

返回varray中创建元素的最大个数

Collection. LIMIT

EXTENDS

该过程在集合的末尾添加新的元素

Collection.EXTEND添加一个NULL元素;Collection.extends(n)添加N个NULL元素,Collection.extend(n,index)添加由index指定位置上元素的n个副表

TRIM

从集合末尾处删除元素

Collection.TRIM 删除最后一个元素

Collection.TRIM(n)删除最后N个元素

数据加中的集合
与index-by表不同,varray和嵌套表可以作为对象-关系表中的珍存储在数据库中。它们也可以作为对象关系表中的列使用。为了表示出作为数据库列的数据类型,集合类型必须是在pl/sql和 sql中可见。这需要使用create or replace type 语句定义而不能仅在pl/sql块中进行局部定义。语法如下:
create of replace type table_name is table of data_type

------from to me

I.表类型

--索引组织表,存放在内存中的表.
DECLARE
TYPE t_indexTable IS TABLE OF emp%ROWTYPE NOT NULL INDEX BY BINARY_INTEGER;
v_indexTable t_indexTable;
CURSOR v_cur IS
SELECT * FROM emp;
BEGIN
FOR c IN v_cur LOOP
v_indexTable(c.empno):=c;
IF v_indexTable.EXISTS(c.empno) THEN
DBMS_OUTPUT.PUT_LINE('v_indexTable('||c.empno||').empno=' || c.empno
||';v_indexTable('||c.empno||').ename='||c.ename);
ELSE
DBMS_OUTPUT.PUT_LINE('v_indexTable('||c.empno||'):不存在');
END IF;
END LOOP;
END;

注:INDEX BY BINARY_INTEGER表示索引表,否则为嵌套表.表类型的下标不一定是连续的,所以可以删除某个下标值,数组类型不行.