본문 바로가기
Oracle

Oracle 23c New Features Preview #1

by 데이터웨이 2022. 11. 8.

Oracle Database 23c

오라클 DB의 새로운 버전(Oracle Database 23c)이 곧 출시 예정입니다. 공식 출시를 앞두고 오라클 오픈월드에서 미리 공개된 새로운 기능을 간단하게 살펴보겠습니다.

신기능 중 일부이겠지만 생각보다 유용한 기능이 많습니다.

FROM 절 없는 SELECT 문

DUAL 테이블 없이 단건을 조회할 수 있습니다. Oracle을 제외한 많은 DBMS에서 지원하는 기능입니다.

SELECT SYSDATE;

SELECT 2*3;

SELECT myFunc();
 

GROUP BY 절, HAVING 절에서 SELECT 절의 컬럼 Alias 사용

이전 버전에서는 ORDER BY 절과 다르게 GROUP BY 절에서는 SELET-List의 컬럼 별칭(Alias)을 사용할 수 없었습니다. Oracle 23c부터는 GROUP BY 절에서도 사용할 수 있습니다. 간단하지만 SQL 개발이 편리해지는 유용한 기능이 추가되었습니다.

SELECT SUBSTR(STD_DT, 1, 6) AS YYYYMM
     , COUNT(*) AS CNT
FROM   TAB1
GROUP  BY YYYYMM   -->  
HAVING CNT > 10    --> 
;

 


정식 버전에서는 GROUP BY 절에서 GROUP BY 1,2,3 같은 표현도 가능하지 않을까 기대해봅니다.

선택적 DDL 실행

오브젝트 유/무에 따라 CREATE / DROP을 실행하는 체크 구문이 추가되었습니다. ORA 에러 발생 없이 오브젝트가 없을 때만 새로 생성하고, 있을 때만 삭제할 수 있게 됩니다.

CREATE TABLE IF NOT EXIST TAB1 
(
   COL1 NUMBER
);

DROP TABLE IF EXIST TAB1;

 

스키마 단위 권한 관리 GRANT / REVOKE

스키마 단위로 특정 사용자에게 권한을 부여할 수 있습니다. 예를 들어, HR 스키마에 있는 모든 테이블을 SCOTT 사용자가 읽을 수 있게 할 수 있습니다.

이전 버전에서는 이렇게 권한을 주고 싶으면 HR 스키마의 모든 테이블에 대해 별도로 GRANT 권한을 주어야 했습니다.

grant select any table on schema HR to SCOTT;