首页 > 数据库技术 > 详细

oracle14 复杂数据类型

时间:2015-10-07 09:36:27      阅读:220      评论:0      收藏:0      [点我收藏+]
 复合类型-pl/sql表类型
相当于高级语言中的数组,但是需要注意的是在高级语言中数组的下标不能为负数,而pl/sql是可以为负数的,并且表元素的下标没有限制。实例如下: 
Sql代码 
1.declare  
2.--定义了一个pl/sql表类型sp_table_type,该类型是用于存放emp.ename%type这种类型的数据,   
3.--index by binary_integer 表示下标是整数   
4.  type sp_table_type is table of emp.ename%type    
5.  index by binary_integer;   
6.--定义了一个sp_table变量,这个变量的类型是sp_table_type   
7.  sp_table sp_table_type;   
8.begin  
9.  select ename into sp_table(-1from emp where empno = 7788;   
10.  dbms_output.put_line(员工名: || sp_table(-1));   
11.end;  
说明: 
sp_table_type 是pl/sql表类型 
emp.ename%type 指定了表的元素的类型和长度 
sp_table 为pl/sql表变量 
sp_table(0) 则表示下标为0的元素 
注意:如果把select ename into sp_table(-1) from emp where empno = 7788;变成select ename into sp_table(-1) from emp;则运行时会出现错误,错误如下: 
ORA-01422:实际返回的行数超出请求的行数 
解决方法是:使用参照变量(这里不讲)
 复合变量——嵌套表(nested table) 

 复合变量——变长数组(varray) 

 

oracle14 复杂数据类型

原文:http://www.cnblogs.com/yaowen/p/4858229.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!