ORA-12899 : 열에 대한 값이 너무 큼
"value too large for column"
데이터 삽입, 업데이트 시 많이 마주치는 오류이다.
위 오류는
컬럼에 설정되어 있는 데이터 허용치보다 더 큰 값을 삽입, 업데이트 하는 경우 발생한다.
쉽게 예시를 들어보면,
DEL_YN 이라는 컬럼에 데이터 타입이 VARCHAR2(1 BYTE)라고 가정했을 때 입력할 수 있는 값은 알파벳 하나일 것이다.
그런데 이 컬럼에 한글을 넣는다던지, 더 많은 알파벳, 숫자 등 설정한 BYTE보다 더 큰 값을 입력하는 경우 ORA-12899 오류가 출력될 것이다.
-- INSERT 과정에서 ORA-12899 오류 발생
-- DEL_YN 컬럼의 DATETYPE이 VARCHAR2(1 BYTE) 라고 가정함
INSERT INTO TB_USER (
USER_NO,
USER_NM,
DEL_YN
) VALUES (
'ID000001',
'김헌일',
'No'
)
해결 방법은 간단하다.
1. 작성된 쿼리에 넣은 테이블 및 컬럼이 본인이 삽입, 수정하려는 테이블과 컬럼이 맞는지 한번 더 확인
2. 삽입, 수정하려는 데이터에는 문제가 없는지 확인
3. BYTE 수 상향 조절이 필요하다면 ALTER 문을 작성하면 된다.
-- INSERT 과정에서 ORA-12899 오류 발생
-- DEL_YN 컬럼의 DATETYPE이 VARCHAR2(1 BYTE) 라고 가정함
INSERT INTO TB_USER (
USER_NO,
USER_NM,
DEL_YN
) VALUES (
'ID000001',
'김헌일',
'N'
)
---
-- 참고용으로 적는 ALTER문!
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME VARCHAR2('원하는 BYTE 수')
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle | 오라클] ORA-01858 : 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다. 오류 (0) | 2022.08.16 |
---|---|
[Oracle | 오라클] ORA-01722 : 수치가 부적합합니다 오류 (0) | 2022.08.11 |
[Oracle | 오라클] ORA-01400 : NULL을 (~) 안에 삽입할 수 없습니다. 오류 (0) | 2022.08.10 |
[Oracle | 오라클] ORA-00913 : 값의 수가 너무 많습니다 오류 (0) | 2022.08.09 |
[Oracle | 오라클] ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 오류 (0) | 2022.08.09 |