PL/SQL记录(record)相当于高级语言中的结构,它有益于处理单行数据。例如要检索雇员的姓名、工资和补助时,如果使用标量变量接收数据,需要定义三个变量。为了简化单行多列数据的处理,可以使用记录。
1、定义Record
在定义时,可以是开发人与自定义记录类型和记录变量,也可以使用%rowtype直接定义记录变量。
例如:自定义Record
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%type,
salary emp.sal%type,
dno emp.deptno%type
);
emp_record emp_record_type ;
emp_record是基于记录类型emp_record_type所定义的记录变量。记录变量名:emp_record
2、使用%rowtype属性定义记录变量
%rowtype可以基于表或视图定义记录变量。当使用该属性定义记录变量时,记录成员的名称和类型与表或视图的列的名称和类型完全相同。
语法:identifier table_name%rowtype;
当使用%rowtype属性定义记录变量时,记录成员的个数、名称、类型与表或视图的列的个数、名称、类型相同。
例如:
emp_record emp%rowtype
记录变量emp_record的成员名为表emp的列名(empno、ename..)
使用示例:
set serveroutput on
DECLARE
TYPE emp_record IS RECORD(
name emp.ename%type,
salary emp.sal%type,
dno emp.deptno%type
);
emp_record emp_record_type;
BEGIN
select ename,sal,deptno INTO emp_record
FROM emp
WHERE empno=&no;
dbms_output.put_line(emp_record.name);
END;
当引用记录变量成员时,必须在成员名之前加上记录变量名作为前缀。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20919832/viewspace-713248/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20919832/viewspace-713248/