pl/sql除了可以使用Orecle規定的基本類型外,還提供了3種特殊的數據類型%type類型、record類型和%rowtype類型。
【%type類型】
使用%type可以聲明一個與指定列名稱相同的數據類型,例如 :v_id emp.id%type 是聲名一個和emp表中id字段相同類型的變量。
使用%type定義變量有兩點好處:第一,定義變量時不必查看錶中各個列的數據類型;第二,如果表中列數據類型進行了修改,使用%type定義的變量會自動進行調整。
【 record類型】
也稱記錄類型,使用record的變量可以存儲多個列值組成的一行數據。使用方式如下:
declare
type emp_type is record( ---------------------聲明record類型emp_type
v_id emp.id%type;
v_name emp.name%type;
)
empInfo emp_type; -------------------聲明emp_type類型的變量empInfo
begin
select id name into empInfo from emp where id=1;
/*
查詢emp表中id爲1的記錄賦給empInfo
*/
dbms_output.put_line(empInfo.v_id||'==========>'||empInfo.v_name);
end;
【 】
%rowtype類型的變量結合了%type類型和record類型的優點,可以根據表中行的結構定義數據類型,用來存儲一條記錄。例如:
declare
empInfo emp%rowtype;
begin
select * into empInfo from emp where id=1;
dbms_output.put_line(empInfo.id||'========>'||emp.name);
end;