PLSQL中常用的自定义类型就两种: 记录类型、PLSQL内存表类型
记录类型:
TYPE type_name IS RECORD
(field_declaration[, field_declaration]…);
identifier type_name;
例如:
DECLARE
TYPE emp_record_type IS RECORD(
last_name VARCHAR2(25)
,job_id VARCHAR2(10)
,salary NUMBER(8, 2));
emp_record emp_record_type;
BEGIN
NULL;
END;
%ROWTYPE属性:
在PLSQL中 %ROWTYPE 表示某张表的记录类型 或者是用户指定以的记录类型,使用此 属性可以很方便的定义一个变量,其类型与某张表的记录或者自定义的记录类型保持一致。极大的方便了 Select * into ….的语句使用。
DECLARE
emp_rec employees%ROWTYPE;
BEGIN
SELECT * INTO emp_rec
FROM employees
WHERE employee_id = &employee_number;
INSERT INTO retired_emps(empno, ename, job, mgr, hiredate, leavedate, sal, comm, deptno)
VALUES (emp_rec.employee_id, emp_rec.last_name, emp_rec.job_id, emp_rec.manager_id, emp_rec.hire_date, SYSDATE, emp_rec.salar