Oracle——%type和%rowtype
1、%TYPE
为了使一个新定义的变量与另一个已经定义了的变量(通常是表的某一列)的数据类型保持一致,Oracle提供了%Type的定义方式,当被参照的那个变量的数据类型发生改变时,那么这个新定义的变量的数据类型也会随之发生改变。
declare 2 v_deptno dept.deptno%type; //与dept表中的deptno列的数据类型一致 3 begin 4 v_deptno:=10; 5 dbms_output.put_line(v_deptno); 6 end; 7 /
2、%RowType
为了使一个变量的数据类型与一个表中记录的各个列的数据类型相对应、一致,Oracle提供%ROWTYPE定义方式。当表的某些列的数据类型改变了之后,这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程序了。
declare 2 v_dept dept%rowtype ; 3 begin 4 select * into v_dept 5 from dept 6 where dept.deptno=4; 7 dbms_output.put_line('部门ID:'||v_dept.deptno); 8 dbms_output.put_line('部门名称:'||v_dept.dname); 9 end; 10 /