Oracle编程

%type和%rowtype的区分

%type:引用数据库中的某列的数据类型或某个变量的数据类型。

1
2
3
4
5
6
7
8
9
10
11
12
declare

-- 声明部分,声明变量v_name的类型就是emp表中ename字段对应的类型。
v_name emp.ename%type;

begin

-- 执行部分
select ename into v_name from emp where empno = 7499;
dbms_output.put_line(v_name);

end;

%rowtype:引用数据库中的一行(所有字段)作为数据类型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
declare

-- 声明部分,声明变量v_all的类型就是emp表中一行中所有字段的类型。
v_all emp%rowtype;

begin

-- 执行部分
select ename,sal into v_all.ename,v_all.sal from emp where empno = 7499;
--或者也可以写成这样:select ename,sal into v_all from emp where empno = 7499;
dbms_output.put_line(v_all.ename);
dbms_output.put_line(v_all.sal);

end;

------ 本文完 ------