Oracle 23c부터 일부 DDL 문에 IF [NOT] EXISTS 절을 사용할 수 있습니다.
DDL object creation, modification, and deletion now support the IF EXISTS and IF NOT EXISTS syntax modifiers. This enables you to control whether an error should be raised if a given object exists or does not exist. The IF [NOT] EXISTS syntax can simplify error handling in scripts and by applications.
아래와 같이 DROP TABLE, CREATE TABLE, ALTER TABLE 문에 IF [NOT] EXISTS 절을 사용할 수 있습니다.
-- 1-1
DROP TABLE IF EXISTS t1;
테이블이 삭제되었습니다.
-- 1-2
CREATE TABLE IF NOT EXISTS t1 (c1 NUMBER);
테이블이 생성되었습니다.
-- 1-3
ALTER TABLE IF EXISTS t1 ADD c2 NUMBER;
테이블이 변경되었습니다.
참고로 이 기능은 _if_not_exists_enabled 파라미터와 관련이 있습니다.
NAME VALUE DEFAULT_VALUE DESCRIPTION
---------------------- ----- ------------- ------------------------------
_if_not_exists_enabled TRUE TRUE enable IF [NOT] EXISTS feature