오라클 버전 확인 쿼리 (Check Oracle Version)

오라클 버전을 확인하는 쿼리가 필요한 경우가 있습니다. 왜냐하면, 오라클 버전에 따라 사용할 수 있는 함수가 다른 경우가 있기 때문입니다. 그리하여 현재 오라클 버전을 조회하는 SQL을 안내해드리겠습니다.

V$VERSION

오라클 버전 확인

오라클 버전 뷰에서 확인하는 쿼리는 다음과 같습니다. 컬럼은 BANNER를 출력합니다.

SELECT * FROM V$VERSION;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

PRODUCT_COMPONENT_VERSION

오라클 버전을 확인하는 다른 뷰를 안내해드리겠습니다. 해당 뷰는 V$VERSION을 약간 가공한 뷰입니다.

SELECT * FROM PRODUCT_COMPONENT_VERSION;

PRODUCT
-------
VERSION
-------
STATUS
-------
NLSRTL
11.2.0.2.0
Production

Oracle Database 11g Express Edition
11.2.0.2.0
Production

PL/SQL
11.2.0.2.0
Production

TNS for 32-bit Windows:
11.2.0.2.0
Production

참고로 PRODUCT_COMPONENT_VERSION의 실제 스크립트는 다음과 같습니다.

CREATE OR REPLACE FORCE VIEW SYS.PRODUCT_COMPONENT_VERSION
(
   PRODUCT,
   VERSION,
   STATUS
)
AS
   (SELECT SUBSTR (banner, 1, INSTR (banner, 'Version') - 1),
           SUBSTR (banner,
                   INSTR (banner, 'Version') + 8,
                   INSTR (banner, ' - ') - (INSTR (banner, 'Version') + 8)),
           SUBSTR (banner, INSTR (banner, ' - ') + 3)
      FROM v$version
     WHERE INSTR (banner, 'Version') > 0
           AND ( (INSTR (banner, 'Version') < INSTR (banner, 'Release'))
                OR INSTR (banner, 'Release') = 0))
   UNION
   (SELECT SUBSTR (banner, 1, INSTR (banner, 'Release') - 1),
           SUBSTR (banner,
                   INSTR (banner, 'Release') + 8,
                   INSTR (banner, ' - ') - (INSTR (banner, 'Release') + 8)),
           SUBSTR (banner, INSTR (banner, ' - ') + 3)
      FROM v$version
     WHERE INSTR (banner, 'Release') > 0
           AND INSTR (banner, 'Release') < INSTR (banner, ' - '));

오라클 현재 버전 가져오기

V$VERSION 뷰를 조회하여 가공한 함수입니다. 해당 오라클 버전이 10인지, 11인지 등을 확인할 수 있도록 하였으며, 필요시 가공하여 사용해 주십시오.

SELECT SUBSTR (VERSION, 1, INSTR (VERSION, '.') - 1) VER
  FROM (SELECT SUBSTR (BANNER, 1, INSTR (BANNER, 'Release') - 1) PRODUCT,
               SUBSTR (
                  BANNER,
                  INSTR (BANNER, 'Release') + 8,
                  INSTR (BANNER, ' - ') - (INSTR (BANNER, 'Release') + 8))
                  VERSION,
               SUBSTR (BANNER, INSTR (BANNER, ' - ') + 3) STATUS
          FROM V$VERSION
         WHERE INSTR (BANNER, 'Release') > 0
               AND INSTR (BANNER, 'Release') < INSTR (BANNER, ' - '))
 WHERE PRODUCT LIKE 'Oracle%';
 
 VER
 ---
 11

V$VERSION

오라클 버전 확인에 가장 많이 쓰이는 건 V$VERSION 입니다.

SELECT * FROM V$VERSION;

SELECT * FROM SYS.V_$VERSION;

GV$VERSION

V$ 뷰는 GV$로 구성이 되어 있고 이 뷰는 또 X$ (fixed view)로 구성되어 있습니다.

참고사항으로 표시했습니다. V$VERSION 으로 확인하셔도 무방합니다.

SELECT * FROM GV$VERSION;

SELECT * FROM SYS.GV_$VERSION;

PRODUCT_COMPONENT_VERSION

PRODUCT_COMPONENT_VERSION 뷰는 V$VERSION 을 가공하여 제공해드리는 뷰입니다.

SELECT * FROM PRODUCT_COMPONENT_VERSION;

PRODUCT_COMPONENT_VERSION 뷰 스크립트는 상기와 같습니다.

만약 버전정보를 가공하여 조회할 필요가 있다면, 처음에 소개해드린 V$VERSION을 이용하시면 됩니다.

   (SELECT SUBSTR (banner, 1, INSTR (banner, 'Version') - 1),
           SUBSTR (banner,
                   INSTR (banner, 'Version') + 8,
                   INSTR (banner, ' - ') - (INSTR (banner, 'Version') + 8)),
           SUBSTR (banner, INSTR (banner, ' - ') + 3)
      FROM v$version
     WHERE INSTR (banner, 'Version') > 0
           AND ( (INSTR (banner, 'Version') < INSTR (banner, 'Release'))
                OR INSTR (banner, 'Release') = 0))
   UNION
   (SELECT SUBSTR (banner, 1, INSTR (banner, 'Release') - 1),
           SUBSTR (banner,
                   INSTR (banner, 'Release') + 8,
                   INSTR (banner, ' - ') - (INSTR (banner, 'Release') + 8)),
           SUBSTR (banner, INSTR (banner, ' - ') + 3)
      FROM v$version
     WHERE INSTR (banner, 'Release') > 0
           AND INSTR (banner, 'Release') < INSTR (banner, ' - '));

댓글