오라클 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;
'Oracle' 카테고리의 다른 글
[오라클] 옵티마이저와 자동차 자율주행의 닮은 점 (0) | 2023.07.06 |
---|---|
Oracle SQL*Plus 데이터 다운로드 텍스트 파일 저장하기 (0) | 2023.02.18 |
[오라클] Oracle DBMS_METADATA 패키지를 이용해 DB Link DDL 추출하기 (0) | 2022.11.07 |
[오라클] Oracle RAC wait event gc current block busy P3 parameter (0) | 2022.11.07 |