ORA-26093 input data column size (number) exceeds the maximum input size (number)

ORA-26093 input data column size (number) exceeds the maximum input size (number) 예외는 입력되는 데이터의 크기가 대상 컬럼에서 허용하는 최대 크기를 초과할 때 발생하지요.

예외에서 핵심을 모두 말하고 있으므로 2가지만 확인하면 돼요.

현재 상황 : input data column size > maximum input size

해결(1) : 입력 데이터의 사이즈를 줄이는 방법

해결(2) : 대상 컬럼의 허용 크기를 늘리는 방법(데이터 정의 필요)

ORA-26093 발생 원인

말 그대로 입력 데이터 크기가 큰 경우 (예상하지 않게)

설계상 존재할 수 없는 데이터 크기가 입력자료에 있는 경우. 예를 들면 'A', 'B', 'C'와 같이 1자리 값으로 구분하기로 약속한 코드인데 'AB' 와 같은 값이 들어왔다든지.

안 보이는 문자

스페이스, 특수문자 등의 문자가 공간을 차지하고 있는 경우

인코딩

다국어 데이터의 Byte 초과 : UTF-8 환경에서는 한글이 일반적으로 3Byte를 사용합니다. 컬럼이 Byte 기준으로 정의되어 있으면, 글자 수는 적더라도 저장 가능한 Byte 수를 초과하여 오류가 발생할 수도 있어요.

자료 이상

CSV, Excel 등의 원본 파일에서 구분자(쉼표, 탭) 또는 줄바꿈이 잘못되어 여러 값이 하나의 긴 문자열로 인식되는 경우 발생할 수 있습니다.

ORA-26093 해결 방법

컬럼 크기 확장

입력 데이터의 길이에 맞도록 대상 컬럼의 크기를 충분히 늘립니다.

ALTER TABLE 테이블명
MODIFY (컬럼명 VARCHAR2(새로운_크기));

CHAR 기준으로 컬럼 변경

다국어 데이터를 저장하는 경우에는 Byte 대신 글자 수(Character)를 기준으로 컬럼을 정의하면 Byte 초과 문제를 줄일 수 있습니다.

ALTER TABLE 테이블명
MODIFY (컬럼명 VARCHAR2(글자수 CHAR));

원본 데이터 정제

테이블 설정에 문제가 없다면 원본 데이터 파일을 확인합니다.

  • CSV 또는 Excel 파일의 구분자가 올바른지 확인하세요.
  • 불필요한 줄바꿈이나 특수문자가 포함되어 있는지 점검하세요.
  • 하나의 컬럼에 여러 데이터가 합쳐져 저장되지 않았는지 확인하세요.
이전최근
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗