oracle存储过程中%type的含义

例子:

CREATE OR REPLACE 
procedure getDeptById
(
v_deptno in dept.deptno%type
)
is
v_dname dept.dname%type;
v_loc dept.loc%type;
begin
select dname,loc into v_dname,v_loc from dept where deptno = v_deptno;
dbms_output.put_line(v_dname||'***'||v_loc);
end;

v_deptno 是定义的变量,dept是数据库里面存在的表,表里面有一个deptno字段,然后%type就是deptno的数据类型。
通俗理解就是让v_deptno这个变量的类型与数据库里面的表字段的类型匹配,从而不必担心类型不匹配的问题。

用%type的好处有两点:

  • 所引用的数据库中列的个数和数据类型可以不必知道。
  • 所引用的数据库中列的个数和数据类型可以实时改变。

你可能感兴趣的:(数据库)