반응형
오라클에서 %ROWTYPE , %TYPE 는
PL/SQL에서 변수의 데이터타입, 크기를 지정해줄 때 사용하는데
사용 시에는 변수의 데이터타입, 크기가
선택한 테이블 컬럼의 타입, 크기와 동일하게 된다
먼저 %ROWTYPE은
변수명 테이블명%ROWTYPE;
이런 식으로 사용하는데
변수명에 테이블에 들어있는 컬럼들을 담고
SELECT 시 INTO 절에 테이블명.변수명으로
값을 넣어준 뒤 사용하게 되는데
이러면 변수 하나만 생성해도
원하는 테이블 전체의 컬럼을 선택 가능하고
나중에 테이블을 변경했다 해도
PL/SQL에서는 변경할 것이 없어진다
다음으로 %TYPE는
변수명 테이블명.컬럼명%TYPE
이런 식으로 사용하는데
이렇게 지정을 해 주면
해당 변수명은 지정한 테이블 컬럼의
데이터 타입, 크기를 따라가게 된다
%TYPE 역시 한번 설정해 두면
테이블의 컬럼 데이터 타입, 크기가 변경됐다 하더라도
딱히 신경 쓸 필요가 없어진다
정리해보자면 %ROWTYPE, %TYPE을 통해
변수의 데이터타입, 크기를 테이블과 동일하게 맞춰줄 수 있는데
테이블을 자주 변경하는 경우에는
%ROWTYPE, %TYPE을 활용하면 굉장히 편하지만
한번 만들고 변경할 일이 없을 경우에는
굳이 %ROWTYPE, %TYPE을 쓸 필요가 없다는 거다
마지막으로 예제에 사용한 PL/SQL 쿼리는 아래와 같다
CREATE OR REPLACE PROCEDURE SCOTT.PROC_TEST2(
VAL IN VARCHAR2
)
IS
V_VAL USE_NOW%ROWTYPE; -- V_VAL 안에 USE_NOW 테이블 컬럼을 담음
V_VAL2 USE_NOW.VAL1%TYPE; -- V_VAL2 안에 USE_NOW.VAL1 컬럼을 담음
BEGIN
V_VAL2 := VAL;
SELECT 'A'
INTO V_VAL.VAL1
FROM DUAL;
END;
반응형
'SQL > Oracle' 카테고리의 다른 글
오라클 조회결과 없어도 출력시키는 방법 (0) | 2020.12.01 |
---|---|
오라클 EXISTS NOT EXISTS 개념 및 예제 (0) | 2020.11.30 |
오라클 접속한 계정의 PC명, IP주소 등 세션정보 구하는 방법 (0) | 2020.11.25 |
오라클 인덱스(INDEX) 조회 쿼리 (0) | 2020.11.25 |
오라클 LIKE IN 사용방법 및 예제 (REGEXP_LIKE) (0) | 2020.11.24 |
댓글