1. 程式人生 > >PL/SQL基礎程式設計之(五)[自定義複合變數][%TYPE和%ROWTYPE的應用]

PL/SQL基礎程式設計之(五)[自定義複合變數][%TYPE和%ROWTYPE的應用]

1、自定義複合變數查詢以及輸出案例:
declare
TYPE myrecord IS RECORD(
     aa varchar2(10),
     bb varchar2(10));   --定義複合變數
record1 myrecord;
begin
select a1,a2 into record1 from a where a2='mmm';    --將變數賦值
dbms_output.put_line(record1.aa||record1.bb);		--查詢輸出的方式
end;
/


2、%type應用的案例,與上一個案例不同的地方是將基本型別換成相應表的%type將會自動匹配,如下面案例所示:
declare
TYPE recorde is record(
     id emp.eid%type,     --利用%type定義複合型資料    [表名].[列名]%type
     name emp.ename%type,
     age emp.eage%type
);
record1 recorde;
begin
select eid,ename,eage into record1 from emp where eid='08';     --賦值
dbms_output.put_line('id:'||record1.id);        --輸出
dbms_output.put_line('name:'||record1.name);
dbms_output.put_line('age:'||record1.age);
end;
/


3、%rowtype的應用案例,與上一個不同的是,將不用聲明覆合變量的每一個子變數記錄。我們直接用[表名%rowtype]宣告就可以了。如下所示:
declare
myrec emp%rowtype;     --用%rowtype聲明覆合變量
begin
select * into myrec from emp where eid='010';
dbms_output.put_line('myrec.eid'||myrec.eid);
dbms_output.put_line('myrec.ename'||myrec.ename);
dbms_output.put_line('myrec.eage'||myrec.eage);
end;
/