[Orace] 第17章 集合-索引表
2016-09-24 14:02
120 查看
索引表类似于程序语言中的数组,可以保存多个数据,并且通过下标来访问每一个数据,但是在 Oracle 中可用来定义索引表下标的数据类型可以是整数也可以是字符串。
但是在Oracle中定义的索引表与程序中的数组还有以下的区别:
索引表不需要进行初始化,而已直接为指定索引赋值,开辟的索引表的索引不一定必须连续。
索引表不仅可以使用数字作为索引下标,也可以利用字符串表示索引下标,使用数字作为索引下标时也可以设置为负数。
定义索引表
TYPE TYPE_NAME IS TABLE OF DATA_TYPE [NOT NULL]
INDEX BY [PLS_INTEGER | BINARY_INTEGER | VARCHAR2(LENGTH)];
但是在Oracle中定义的索引表与程序中的数组还有以下的区别:
索引表不需要进行初始化,而已直接为指定索引赋值,开辟的索引表的索引不一定必须连续。
索引表不仅可以使用数字作为索引下标,也可以利用字符串表示索引下标,使用数字作为索引下标时也可以设置为负数。
定义索引表
TYPE TYPE_NAME IS TABLE OF DATA_TYPE [NOT NULL]
INDEX BY [PLS_INTEGER | BINARY_INTEGER | VARCHAR2(LENGTH)];
DECLARE TYPE INFO_INDEX IS TABLE OF VARCHAR2(20) INDEX BY PLS_INTEGER; V_INFO INFO_INDEX; BEGIN V_INFO(1) := 'JAVA'; V_INFO(10) := 'PL/SQL'; IF V_INFO.EXISTS(1) THEN DBMS_OUTPUT.PUT_LINE(V_INFO(1)); ELSE DBMS_OUTPUT.PUT_LINE('NOT EXISTS'); END IF; IF V_INFO.EXISTS(30) THEN DBMS_OUTPUT.PUT_LINE(V_INFO(30)); ELSE DBMS_OUTPUT.PUT_LINE('NOT EXISTS'); END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT('WRONG:'|| SQLCODE || SQLERM); END;
DECLARE TYPE DEPT_INDEX IS TABLE OF DEPT%ROWTYPE INDEX BY PLS_INTEGER; V_DEPT DEPT_INDEX; BEGIN V_DEPT(0).DEPT := 80; V_DEPT(0).DNAME := 'MLDN'; V_DEPT(0).LOC := 'PEKING'; IF V_DEPT.EXISTS(0) THEN DBMS_OUTPUT.PUT_LINE(); END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT('WRONG:'|| SQLCODE || SQLERM); END;
DECLARE TYPE DEPT_TYPE IS RECORD( DEPTNO DEPT.DEPTNO%TYPE, DNAME DEPT.DNAME%TYPE, LOC DEPT.LOC%TYPE ); TYPE DEPT_INDEX IS TABLE OF DEPT_TYPE INDEX BY PLS_INTEGER; V_DEPT DEPT_INDEX; BEGIN V_DEPT(0).DEPT := 80; V_DEPT(0).DNAME := 'MLDN'; V_DEPT(0).LOC := 'PEKING'; IF V_DEPT.EXISTS(0) THEN DBMS_OUTPUT.PUT_LINE(); END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT('WRONG:'|| SQLCODE || SQLERM); END;
相关文章推荐
- Oracle 10g复合数据类型pl/sql集合学习六——索引表、嵌套表、变长数组
- Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三
- scala编程第17章学习笔记(1)——集合类型
- PL/SQL复合数据类型—record,集合(索引表,嵌套表,VARRAY)—之四
- Oracle 集合,索引表 [实例]
- Oracle集合(联合数组(索引表),嵌套表,变长数组,记录类型的嵌套表)的初始化与赋值,以及它们的区别
- [Oracle] 第17章 集合-记录类型
- [Oracle] 第17章 集合-嵌套表
- 【Oracle】集合(联合数组(索引表),嵌套表,变长数组,记录类型的嵌套表)的初始化与赋值,以及它们的区别
- Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三
- Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三
- 嵌套表,索引表,集合的学习
- 集合(索引表,嵌套表,变长数组)
- ASP.NET中文件上传下载方法集合
- JavaScript去掉空格的方法集合
- 集合练习。学生信息包括学号、姓名、出生日期、性别。把N个学生的信息放入一个集合中。可以根据学号,对学生信息进行检索。并可以根据生日进行排序输出。
- 安卓开机动画集合贴【自己做的哦~…
- java多线程使用集合那点事
- Java集合深入学习--HashSet与TreeSet
- 字符串第一次包含目标字符集合元素的最小范围