* Advantages

- select * 문에서 유용

- 컬럼 갯수와 타입이 실행시 변경될 시 유용

(데이터베이스 컬럼의 갯수와 데이터 타입을 알 필요 없음)

- 대상: 테이블, 뷰, 커서, 커서 변수



create or replace procedure emp_record_proc(a number)

is 

 TYPE emp_rec_type IS RECORD

        (empno emp.empno%type, --┐

 sal   emp.sal%type, --┼> %ROWTYPE으로

 job   emp.job%type); --┘


 emp_rec emp_rec_type;

begin

 select empno, sal, job into emp_rec

 from (select empno, sal, job

       from emp 

       where deptno = a

       order by sal desc) e 

 where rownum = 1;


 p(emp_rec.empno);

 p(emp_rec.sal);

 p(emp_rec.job);


end;

/    



exec emp_record_proc(10)

exec emp_record_proc(30)


↓ ↓ ↓ 


create or replace view v1001 

as select empno, sal, job from emp;


create or replace procedure emp_rowtype_proc(a number)

is 

 emp_rec v1001%rowtype;

begin

 select empno, sal, job into emp_rec

 from (select empno, sal, job

       from emp 

       where deptno = a

       order by sal desc) e 

 where rownum = 1;


 p(emp_rec.empno);

 p(emp_rec.sal);

 p(emp_rec.job);


end;

/    



exec emp_rowtype_proc(10)

exec emp_rowtype_proc(30)


   ------------------------------


declare

 emp_rec emp%rowtype;

begin

 select * into emp_rec

 from emp

 where empno = 7788;


 p(emp_rec.empno||' '||emp_rec.ename||' '||emp_rec.job||' '||emp_rec.sal);

end;

/


'Oracle > PL/SQL' 카테고리의 다른 글

15일차 # 6-14: Update with records  (0) 2012.04.24
15일차 # 6-13: Insert with records  (0) 2012.04.24
15일차 # 6-7: Record type  (0) 2012.04.24
15일차 # 6-3: Composite Data Types  (0) 2012.04.24
15일차 # 확인문제  (0) 2012.04.24

+ Recent posts