본문 바로가기
[개발] Programming/Database

java.sql.SQLException: ORA-12899 열에 대한 값이 너무 큼 - 해결 방법

by eatyourKimchi 2020. 8. 22.

 

ORA-12899 오류 해결, 예방 방법

 해당 오라클 오류는 '열에 대한 값이 너무 큼'이라고 친절하게 알려준다. 오라클 오류 중에 어쩌면 가장 쉽게 해결 가능한 오류인데, insert나 update할 테이블(오브젝트)의 칼럼보다 전달한 파라미터의 크기가 더 큰 경우에 발생한다.

 

 

1. 화면단에서 길이 제어

해결방법 중에 가장 쉬운 방법은 웹일 경우 화면단에서 데이터 길이를 미리 검사하는 것이다.

 

예1) 스크립트에서 길이를 검사하는 방법

var tmp = '검사할 데이터';

if(tmp.length > 제한할 길이){
    alert("입력 길이가 너무 길어염.");
    return false;
}

 

예2) input 태그에 maxlength를 설정해주는 방법

나이 : <input maxlength="3" /> <!-- 최대 3자 -->
이름 : <input maxlength="20" /> <!-- 최대 20자 -->

 

 

2. 컨트롤러 단에서 길이 제한

API로 연동된 경우 화면단이 존재하지 않으므로 컨트롤러 단에서 길이를 검사하든지 try/catch를 추가하여 오류 내역과 오브젝트와 컬럼 명이 외부에 노출되지 않도록 조치를 취한다.

 

Java의 경우 자바스크립트와 마찬가지로 데이터의 길이를 검사하면 간단하게 막을 수 있다. 그리고 경우에 따라서는 길이가 너무 길 경우 throw Exception을 강제로 발생시켜 웹 화면으로 오라클 오류가 직접 노출되지 않도록 처리한다.

 

끝~!

 

 

댓글