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;