天天看點

Oracle type/rowtype/record

RECORD: 記錄類型,可以了解為是幾列資料的集合,使用的時候注意結果集隻能有一行

,引用時使用.來引用内部元素

declare type v_my_record is record

        (v_ename emp.ename%type, 

         v_job   emp.job%type);

v_dname dept.dname%type;

v_my v_my_record;   --需要先定義type  再聲明變量

begin

v_dname:=&dname;

select ename,job into v_my

from emp inner join dept 

on emp.deptno=dept.deptno 

where upper(dept.dname)=upper(v_dname) and rownum=1;

dbms_output.put_line(v_my.v_ename||' '||v_my.v_job);

exception when no_data_found then

dbms_output.put_line('nononono..');

end;

ROWTYPE:可以了解為是幾列資料的集合,可以對表、視圖使用,應用的時候使用 "." 和record類似:

create or replace view v_emp 

as 

select ename,dname,empno 

from emp,dept 

where emp.deptno=dept.deptno;

--使用視圖%rowtype

declare 

v_row v_emp%rowtype;

v_empno emp.empno%type;

begin

v_empno := &請輸入編号;

select * into v_row from v_emp where empno= v_empno;

dbms_output.put_line(v_row.ename||','||v_row.dname);

end;