본문 바로가기

데이터 사이언스 DataScience/Data Base 데이터베이스

[Oracle] LOB 테이블에 NOLOGGING 옵션이 적용 안된다

1. 문제상황

임시 테이블 생성을 위해 LOB 컬럼에 NOLOGGING 옵션을 적용하려고 했는데, 

아래와 같은 오류가 발생했다.

 

ORA-22853 LOB 저장 옵션 지정이 부적당합니다.

               invalid LOB storage option specification

 

CREATE TABLE에서도 마찬가지였고, ALTER TABLE에서도 마찬가지였다.

 

2. 해결방법

정답은 오라클 공식자료에 있었다.

오류 원인은 NOCACHE를 같이 명시해주지 않아서였다. 

 

LOB의 경우 NOLOGGING / LOGGING 옵션 적용시 CACHE 여부를 같이 적어줘야한다.

이때, CACHE NOLOGGING 옵션은 Basicfiles 에서는 불가능하다.

 

즉, NOLOGGING을 적용하고 싶을때는 NOCACHE NOLOGGING으로 명시해줘야한다.

 

* 예시 SQL

-- 1. 잘못된 예시 (NOCACHE가 생략됨, ORA-22853 발생)
ALTER TABLE TABLE_A MODIFY LOB(COLUMN_NAME) (NOLOGGING);

-- 2. 적절한 예시 (NOCACHE NOLOGGING을 같이 명시)
ALTER TABLE TABLE_A MODIFY LOB(COLUMN_NAME) (NOCACHE NOLOGGING);

 

출처 : https://docs.oracle.com/cd/E11882_01/server.112/e41084/clauses005.htm

 

logging_clause

Semantics This section describes the semantics of the logging_clause. For additional information, refer to the SQL statement in which you set or reset logging characteristics for a particular database object. If you specify LOGGING, then the creation of a

docs.oracle.com

 

반응형