PLSQL 复合类型数据

•复合类型是用户定义的

常用的复合类型有:属性 记录 表 数组

(1)    属性类型(引用数据库列的数据类型)

%TYPE – 引用变量和数据库的数据类型

如:empcode emp.empno%type

%ROWTYPE – 提供表示表中一的记录类型

如:emp_ex emp%ROWTYPE

说明:声明变量emp_ex,它可以用于存储从emp中提取的记录

(2)    记录类型(对应数据库表中的一行)

两种方法:自定义记录类型和记录变量或者使用%ROWTYPE属性定义记录变量

自定义记录类型和记录变量的语法:

TYPE <记录类型名> IS RECORD(

<数据项1> <数据类型> 【NOT NULL【:=<表达式>】】;

<数据项2> <数据类型> 【NOT NULL【:=<表达式>】】;)

<记录变量名> <记录类型名>

小例子:(很简单,依葫芦画瓢)

declare

type emp_record_type is record      定义一个记录类型,名称为 emp_record_type

(v_ename emp.ename%type,        格式“字段名 表名.表中的字段名%type”

v_job emp.job%type,

v_sal emp.sal%type);

emp_rec emp_record_type;       记录变量名:emp_rec(别名)   emp_record_type记录类型

begin

select ename,job,sal into emp_rec  格式“select 字段 into 记录变量名 from 表名 where…”

from emp where empno=&eno;

dbms_output.put_line(emp_rec.v_ename||':'

emp_rec.v_job||';'||emp_rec.v_sal);

end;

/

(3)    表类型(保存在数据缓冲区中的没有特别的存储次序的,可以离散存储的数据结构)

语法:

TYPE <表类型名> IS TABLE OF <数据类型> INDEX BY BINARY_INTEGER

<表变量名> <表类型名>

说明:

表类型名:用户定义的

数据类型:表中元素的数据类型

例子:

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   注意了:这里别忘了有个1哦。。。。指定元素的数目

where empno=7902;

dbms_output.put_line('员工名:'||ename_table(1));

end;

/

(4)    数组类型

与表类型的区别就是声明了一个数组就确定了数组中的元素的数目

特点:元素的次序是固定而且连续的,并且索引变量从1开始一直到其定义的最大值为止

语法:

TYPE <数组类型名> IS VARRAY(<MAX_SIZE>) OF <数据类型>;

<表变量名> <表类型名>

说明:

数组类型名:用户定义的

数据类型:数组中元素的数据类型

MAX_SIZE:指明数组元素个数的最大值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值