%TYPE:
在PL/SQL中,使用%TYPE声明的变量类型与数据表中字段的数据类型相同,当数据表中字段数据类型修改后,PL/SQL程序中相应变量的类型也自动随之改变。
例一:
v_name emp.ename%TYPE
使用%TYPE至少有两个好处:
1. 不必确切知道ENAME字段的数据类型
2. 当ENAME字段类型改变时,v_name变量的类型也随之改变
%ROWTYPE:
使用%TYPE声明的变量类型与数据表中字段的数据类型相同。在PL/SQL中,还提供了%ROWTYPE来存储一行数据
例二:定义了一个%ROWTYPE类型的变量v_dept,该变量的结构与DEPT表的结构完全相同。
SQL> DECLARE
v_dept dept%ROWTYPE;
Begin
Select * Into v_dept From dept Where deptno=30;
DBMS_OUTPUT.PUT_LINE(v_dept.deptno);
DBMS_OUTPUT.PUT_LINE(v_dept.deptname);
DBMS_OUTPUT.PUT_LINE(v_dept.location);
End;