ORA-38900: 필수 열 ORA_ERR_NUMBER$(오류 로그 테이블)이(가) 누락됨

필수 열 누락

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;

댓글