새소식

300x250
3. Database/Oracle 기본

[Oracle] Dual 테이블이란?

  • -
728x90

[Oracle] Dual 테이블이란?

 

안녕하세요. 갓대희 입니다. 이번 포스팅은 [Oracle Dual] 입니다. :) 

 

 

 

▶ Dual 테이블의 정의

 1. 오라클 자체에서 제공되는 테이블

 2. 간단하게 함수를 이용해서 계산 결과값을 확인 할 때 사용하는 테이블

 

 3. SYS사용자가 소유하는 오라클의 표준 테이블 (그림 참조)

 4. SYS사용자가 소유하지만 어느 사용자에서 접근 가능함 (그림 참조)

 

 

 5. 오직 한행, 한컬럼을 담고 있는 dummy 테이블

 

 

 

▶ Dual 테이블의 사용용도

 

   - dual 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하는데 적합하다.
   - 
함수에 대한 쓰임을 알고 싶을때 특정 테이블을 생성할 필요없이 dual 테이블을 이용하여 함수의 값을 리턴(return)받을 수 있다.

 

ex) SELECT 시퀀스.NEXTVAL FROM DUAL;

ex) SELECT SYSDATE FROM DUAL;

ex) SELECT CURRENT_DATE FROM DUAL;

ex) Merge into 내부에서 사용

 

  1. MERGE INTO 테이블명  별칭
  2. USING 대상테이블/뷰  별칭 // 동일 테이블이라면 USING DUAL
  3. ON 조인조건
  4. WHEN MATCHED THEN
  5.      UPDATE SET
  6.                 컬럼1=1
  7.                 컬럼2=2
  8. WHEN NOT MATCHED THEN
  9.      INSERT     (컬럼1,컬럼2,...)
  10.       VALUES    (1,2,...);
 

또 나같은경우는 테이블 생성 없이 가상 데이터를 만들어 테스트 해볼때도 사용

 

ex) 

SELECT  회원테이블.* 
FROM
        (
        SELECT '갓댐' AS 이름, 18 AS 나이 FROM DUAL
        UNION ALL
        SELECT '갓동수', 20 FROM DUAL
        UNION ALL
        SELECT '허준', 19 FROM DUAL
        ) 회원테이블
WHERE   나이 < 20;

 

 

300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.