集合与记录都属于PL/SQL的复合类型,集合允许将类型相同的多个变量当作一个整体进行处理,类似于Java或C语言中的数组,记录允许将多个不同类型的变量当作一个整体进行处理。
使用记录类型获取员工信息
declare
--定义记录类型
TYPE emp_info type is record(
empname varchar2(10),
job varchar(9),
sal number(7,2)
);
--声明记录类型的变量
empinfo emp_info_type;
begin
--查询数据并保存到记录类型中
select ename,
job,
sal
into empinfo
from emp
where empno=&empno;
--输出记录类型变量中保存的员工信息
dbms_output.put_line('员工信息为:员工姓名:'
||empinfo.empname
||'职位:'
||empinfo.job
||'薪资:'
||empinfo.sal
);
记录类型允许同时处理单行多列的数据,PL/SQL的集合允许同时处理多行单列的数据。
集合类似与数组,PL/SQL提供了如下3种集合类型。
1、关联表
2、嵌套表
3、变长数组
使用游标和索引表显示员工名称
declare
--定义员工名称索引表
TYPE emp_table is table of varchar2(10)
index by binary_integer;
emplist emp_table; --定义表类型的变量
--定义游标类型
cusor empcursor
is
select ename
from emp;
begin
--如果游标没有打开,则打开游标
if not empcursor%IEOPEN
THEN
OPEN empcursor;
end if;
--从游标结果中提取所有的员工名称
fetch empcursor
bulk collect into emplist;
--使用for循环显示所有的员工名称
for i in 1..emplist.count
loop
dbms_output.put_line('员工名称:'||emplist(i));
end loop;
close empcursor; --关闭游标
end;
/