%ROWTYPE은 전의 Scalar타입보다 약간 효율적인 데이터 타입 선언이다.
이 타입 선언문은 선언 시 지정한 테이블의 컬럼 선언 부분을 전부 가져와 사용한다.
예제에서 사용법을 확인하자.
-- 테이블의 모든 컬럼을 통채로 들고 온다. -- 테이블명%ROWTYPE SET SERVEROUTPUT ON; DECLARE v_emp employees%ROWTYPE; BEGIN SELECT emp_no, first_name, family_name, reg_date INTO v_emp.emp_no, v_emp.first_name, v_emp.family_name, v_emp.reg_date FROM employees WHERE emp_no = 118; DBMS_OUTPUT.PUT_LINE('사원번호 : '||v_emp.emp_no); DBMS_OUTPUT.PUT_LINE('이름 : '||v_emp.family_name||''||v_emp.first_name); DBMS_OUTPUT.PUT_LINE('입사일 : '||v_emp.reg_date); END; / CREATE OR REPLACE PROCEDURE emp_row(ref_emp_no IN employees.emp_no) IS v_emp employees%ROWTYPE; BEGIN SELECT emp_no, first_name, family_name, reg_date INTO v_emp.emp_no, v_emp.first_name, v_emp.family_name, v_emp.reg_date FROM employees WHERE emp_no = ref_emp_no; DBMS_OUTPUT.PUT_LINE('사원번호 : '||v_emp.emp_no); DBMS_OUTPUT.PUT_LINE('이름 : '||v_emp.family_name||''||v_emp.first_name); DBMS_OUTPUT.PUT_LINE('입사일 : '||v_emp.reg_date); END; / EXEC emp_row(117);
'Oracle DB 11g > 03.PL SQL' 카테고리의 다른 글
[DB]03-06.Oracle DB PLSQL IF문, 만들어 둔 프로시저 소스 확인 (0) | 2018.10.10 |
---|---|
[DB]03-05.Oracle DB PLSQL Procedure(Insert, Update, Delete 예제) (0) | 2018.10.10 |
[DB]03-04.Oracle DB PLSQL Function (0) | 2018.10.10 |
[DB]03-02.Oracle DB PLSQL 스칼라 데이터 타입, Scalar (0) | 2018.10.10 |
[DB]03-01.Oracle DB PLSQL BLOCK, IN, OUT, IN OUT (0) | 2018.10.10 |