1. 程式人生 > >oracle儲存過程中%type的含義

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的好處有兩點:

  • 所引用的資料庫中列的個數和資料型別可以不必知道。
  • 所引用的資料庫中列的個數和資料型別可以實時改變。