ORA-38900: 필수 열 ORA_ERR_NUMBER$(오류 로그 테이블)이(가) 누락됨 (ORA-38900: missing mandatory column of error log table) 해결 방법에 대해 안내해드리겠습니다.
ORA-38900 오류는 상기와 같은 명세로 발생합니다. 필수 열 ORA_ERR_NUMBER$ 은 컬럼 존재 여부에 따라 변하며 이 부분은 추후 설명드리겠습니다. 해당 오류의 발생 원인과 해결 방법에 대해 알아봅시다.
에러 로깅 구문을 사용하는 경우, 사용자 임의 로그 테이블 또한 로그를 위한 필수 열이 존재하여야 합니다.
필수 열이 없는 경우 해당과 같은 오류가 발생할 수 있습니다. (로그 테이블을 사용자 정의로 만드는 경우에 발생할 확률이 높습니다.)
에러 로깅 테이블 예시
사용자 정의 로그 테이블은 적어도 다음의 컬럼을 필수로 합니다.
- ORA_ERR_NUMBER$
- ORA_ERR_MESG$
- ORA_ERR_ROWID$
- ORA_ERR_OPTYP$
- ORA_ERR_TAG$
다음은 예시 사용자 정의 로그 테이블 명세입니다.
CREATE TABLE USERNAME.TAB_ERR
(
ORA_ERR_NUMBER$ NUMBER,
ORA_ERR_MESG$ VARCHAR2(2000),
ORA_ERR_ROWID$ UROWID,
ORA_ERR_OPTYP$ VARCHAR2(2),
ORA_ERR_TAG$ VARCHAR2(2000)
)
TABLESPACE TABLESPACENAME
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;