ORACLE 集合(关联数组,嵌套表,VARRAY)
来源:互联网 发布:mac系统重装多少钱 编辑:程序博客网 时间:2024/05/21 03:57
1.索引表
type type_name is table of element_type[not null] index by key_type;
type_name 自定义数据类型的名称
is table .. index 表示索引表
element_type 索引表元素的数据类型
not null 表示不请允许引用null元素
key_type(binary_integer、pls_integer、varchar2) 索引表元素下标的数据类型,注意9i前只能用binary_integer、pls_integer
元素下标可以负值,元素大小个数没有限制
- set serveroutput on;
- declare
- type ename_table_type is table of emp.ename%type index by binary_integer;
- ename_table ename_table_type;
- begin
- select ename into ename_table(-1) from emp where empno = 7788;
- dbms_output.put_line('雇员名:' || ename_table(-1));
- end;
- /
- 雇员名:SCOTT
- PL/SQL procedure successfully completed
2.嵌套表
type type_name is table of element_type;
元素下标从1开始,元素个数没有限制,数组元素值可以稀疏
使用嵌套表元素时,必须首先使用其构造方法初始化嵌套表
- set serveroutput on;
- declare
- type ename_table_type is table of emp.ename%type;
- ename_table ename_table_type;
- begin
- ename_table:=ename_table_type('A','A');
- select ename into ename_table(2) from emp where empno = 7788;
- dbms_output.put_line('雇员名:' || ename_table(2));
- end;
- /
- 雇员名:SCOTT
- PL/SQL procedure successfully completed
嵌套表还可以作为表列的数据类型使用
- create type phone_type is table of varchar2(20);
- /
- create table employee(
- id number(4),name varchar2(10),sal number(6,2) ,phone phone_type
- )nested table phone store as phone_table;
- /
- --insert
- insert into employee
- values
- (1, 'scott', 800, phone_type('123456', '789012'));
- commit;
- --select
- declare
- phone_table phone_type;
- begin
- select phone into phone_table from employee where id=1;
- for i in 1..phone_table.count loop
- dbms_output.put_line('电话号码:'||phone_table(i));
- end loop;
- end;
- /
- 电话号码:123456
- 电话号码:789012
- PL/SQL procedure successfully completed
- --update
- declare
- phone_table phone_type:=phone_type('11','22','33');
- begin
- update employee set phone=phone_table where id=1;
- commit;
- end;
- /
3.变长数组varray
type type_name is varray(size_limit) of element_type[not null];
size_limit 指定varray元素的最大个数
元素下标从1开始,最大元素有限制,可以当作表数据列
使用前,必须要使用构造方法初始化varray元素
- declare
- type ename_table_type is varray(10) of emp.ename%type;--元素最大个数定义后不可改变
- ename_table ename_table_type := ename_table_type('A','B');--初始化两个元素,可以通过ename_table.extend方法添加元素,默认为null,不能超过最大个数
- begin
- select ename into ename_table(1) from emp where empno=7788; --下标从1开始,没有初始的不能直接使用,如ename_table(3)错
- dbms_output.put_line(ename_table(1));
- end;
- /
- SCOTT
- PL/SQL procedure successfully completed
在表列中使用varray
- create type phone_type is varray(10) of varchar2(20);
- /
- create table employee(
- id number(4),name varchar2(10),sal number(6,2),phone phone_type
- );
- /
- --操作跟嵌套表列一样,元素个数有限制
0 0
- ORACLE 集合(关联数组,嵌套表,VARRAY)
- oracle:变长数组varray,嵌套表,集合
- oracle 三种集合数据类型【varray,嵌套表,联合数组】+record
- Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三
- Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三
- Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三
- oracle 集合 varray
- PL/SQL复合数据类型—record,集合(索引表,嵌套表,VARRAY)—之四
- PL/SQL中使用嵌套表、变长数组(Varray)注意事项
- dotConnect for Oracle中用VARRAY类型访问数据和嵌套表
- 【Oracle】集合(联合数组(索引表),嵌套表,变长数组,记录类型的嵌套表)的初始化与赋值,以及它们的区别
- Oracle集合(联合数组(索引表),嵌套表,变长数组,记录类型的嵌套表)的初始化与赋值,以及它们的区别
- oracle VARRAY数据类型
- oracle创建varray
- 集合(索引表,嵌套表,变长数组)
- PL/SQL 集合数据类型(关联数组)
- [Oracle] 第17章 集合-嵌套表
- MyBatis之高级关联和集合映射(二、嵌套查询和嵌套结果小案例)
- The Monocycle - UVa 10047 搜索
- 打印倒三角形
- iOS 中的多线程总结
- Redis源码分析(十九)--- replication主从数据复制的实现
- UML类图几种关系的总结
- ORACLE 集合(关联数组,嵌套表,VARRAY)
- 当TableView只有几行,但是多于的地方会被分割线占据的解决办法
- 创业要面对一切可能
- 第九周项目六穷举法解决组合问题(3)三色球问题
- 关于R以及Rstudio的安装过程 64位ubuntu12.04
- ubuntu12.04的NFS配置
- 傻瓜式破解linux--root密码
- Bicoloring - UVa 10004 dfs
- mac本地apachectl服务器 阿帕奇服务器