3.2.2复合变量
指用于存放多个值的变量。
(1) PL/SQL记录
PL/SQL记录类似高级语言中的结构。每个PL/SQL记录一般包含对个成员。使用时,需要在定义部分定义记录类型和记录变量。引用记录成员时,必须加记录变量作为前缀。
DELECARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE);
emp_recore emp_record_type;
BEGIN
SELECT ename,sal INTO emp_record
FROM emp WHERE empno=7788;
dbms_output.put_line(‘雇员名:’|| emp_record.name);
END;
emp_record_type是PL/SQL记录类型,该记录类型包含了2个成员(name,salary); emp_record是记录变量;emp_record.name表示引用记录变量emp_record的成员name
(2) PL/SQL表
类似于高级语言中的数组。区别:高级语言数组的下标不能为负,PL/SQL可以;高级语言数据的元素个数有限制,PL/SQL没有。使用PL/SQL表事,必须首先在定义部分PL/SQL表类型和PL/SQL表变量,然后在执行部分中引用PL/SQL表变量。
DELECARE
TYPE emp_record_type IS TABLE OF emp.ename%TYPE
INDEX BY BINARY_INTEGER;
BEGIN
SELECT ename INTO emp_table(-1)
FROM emp WHERE empno=7788;
dbms_output.put_line(‘雇员名:’|| emp_table(-1));
END;
emp_record_type为PL/SQL表类型;emp.ename%TYPE指定了PL/SQL表元素的数据类型和长度;ename_table为PL/SQL表变量,ename_table(-1)表示下标为-1的元素。
(3) 嵌套表 类似于高级语言中的数组
(4) VARRAY VARRAY(变长数组)类似于嵌套表