ORA-29913 에러 정리: 원인과 해결 방법 총정리

반응형

– 외부 파일 처리 시 꼭 알아야 할 문제

 

오라클 데이터베이스를 사용하면서 외부 파일 작업(예: 데이터 임포트, 디렉토리 접근 등)을 하다 보면
갑자기 ORA-29913 오류를 만나는 경우가 있습니다.
"도대체 무슨 문제지?" 싶은 이 에러는 사실 다양한 원인으로 발생할 수 있습니다.
이번 글에서는 ORA-29913 에러가 발생하는 원인, 대표적인 상황별 해결 방법까지
초보자도 이해할 수 있게 자세히 정리해드립니다.
비슷한 오류로 고민 중이시라면 꼭 참고해보세요!

ORA29913


📋 ORA-29913: 오류 메시지 설명

ORA-29913: 오류 발생 during call to ODCIEXTTABLEOPEN

뜻:
외부 테이블(External Table) 또는 파일 시스템 연동 작업 중
오라클이 파일을 제대로 읽거나 접근할 수 없을 때 발생하는 에러입니다.

즉, 파일 I/O(입출력) 문제라고 이해하시면 됩니다.


🔥 ORA-29913 주요 발생 원인

원인 설명

파일 경로 문제 오라클이 참조하려는 경로에 파일이 없거나 경로가 잘못 설정됨
디렉토리 권한 부족 오라클이 파일 읽기 권한을 가지지 못함
파일 퍼미션 문제 (Linux/Unix) 파일 권한이 755가 아니거나, 오라클 유저가 읽을 수 없음
파일 포맷 문제 예상과 다른 파일 형식으로 오류 발생 (예: CSV 파일 오류)
디렉토리 오브젝트 설정 오류 DB내 디렉토리 오브젝트가 잘못 지정됨

🛠 ORA-29913 에러 해결 방법


✅ 1. 파일 경로 확인

  • 오라클 서버에서 지정된 파일 경로가 정확한지 확인하세요.
  • 오타, 경로 누락이 없는지 체크합니다.
SELECT * FROM all_directories;

로 등록된 디렉토리 오브젝트를 확인해보세요.


✅ 2. 디렉토리 오브젝트 권한 확인

  • 디렉토리 오브젝트에 대해
    사용자에게 READ, WRITE 권한이 부여되어야 합니다.
GRANT READ, WRITE ON DIRECTORY 디렉토리명 TO 사용자명;

✅ 권한이 없으면 외부 테이블 작업 중 오류가 납니다.


✅ 3. 파일 권한(퍼미션) 점검 (Linux/Unix)

  • 파일 퍼미션이 644 또는 755인지 확인하세요.
chmod 755 파일명

✅ 오라클 프로세스가 해당 파일을 읽을 수 있어야 합니다.


✅ 4. 파일 포맷 확인

  • 파일이 깨진 상태이거나, 예상한 포맷과 다를 경우 에러가 발생합니다.
  • 특히 External Table로 CSV 파일을 읽을 때,
    • NULL 문자,
    • 따옴표 누락,
    • 컬럼 수 불일치
      등이 있으면 ORA-29913이 뜰 수 있습니다.

✅ 파일을 메모장이나 Visual Studio Code 등으로 열어 구조를 확인해보세요.


🔥 추가: 외부 테이블(External Table) 작업 시 ORA-29913 주의사항

  • 외부 테이블을 생성할 때 오라클 서버가 파일에 접근합니다. (클라이언트 PC 아님)
  • 서버 경로 지정 시 반드시 절대경로(Absolute Path)를 사용하세요.
  • 파일 이름에 공백, 특수문자 사용은 피하세요. (문제 원인이 되기 쉽습니다.)

🧠 예시: 외부 테이블 생성 시 주의 코드

CREATE OR REPLACE DIRECTORY ext_tab_dir AS '/u01/app/datafiles/';

GRANT READ, WRITE ON DIRECTORY ext_tab_dir TO myuser;

CREATE TABLE ext_table (
  id NUMBER,
  name VARCHAR2(100)
)
ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY ext_tab_dir
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
  )
  LOCATION ('datafile.csv')
)
REJECT LIMIT UNLIMITED;

✅ 이런 식으로

  • 디렉토리 지정
  • 권한 부여
  • 파일 포맷 명시
    를 정확히 해주어야 ORA-29913 오류를 피할 수 있습니다.

ORA-29913 오류는 겉으로는 복잡해 보이지만,
실제로는 파일 경로, 권한, 포맷 세 가지만 점검하면 대부분 해결됩니다.

러프하게 요약하면:

  • 파일이 있는지?
  • 오라클이 읽을 수 있는지?
  • 파일 내용이 정상인지?

이 세 가지를 확인하세요.

✔️ 초기에 경로와 권한 세팅을 제대로 해두면
✔️ 이후에는 이런 오류를 거의 만나지 않게 됩니다.

차분히 점검해가면서 해결해나가면 분명 좋은 결과를 얻을 수 있습니다. ✨

반응형