문제의 발단은...
해당 메소드에서 시작되었다;; 덕분에 오전 2시간을 날려 먹었지만;; ㅡㅡ
음..
디비에 넣기전에;;바이트 단위 길이를 체크 하여서 ...
넘어온 랭스 만큼만 짤라서 리턴해주어서 ;;
디비 입력길이를 맞춰주는 그러한 놈이 엇는데;;
이상하게도 ;;; 자꾸...
ORA-01401: 열에 입력한 값이 너무 큽니다 라는 오류만 나오는것;;
한두건 인서트 하는것도 아니고... 몇만건 인서트 도중에 나는 거라서 ;; ㅡㅡ 그것도 배치로 짤라서 몇천껀씩
보내는 작업인데;;
문제는 랭스 체크는 ... trim을 써서 체크를 하고...
공백이 제거된 글자열이 ... 해당 길이 문자열 보다 작으면 ...
그대로 trim을 한 놈을 리턴해야 하는데;;
trim이 바져 버렸던것;; ㅡㅡ;;;
완전 바보짓 한거지;; ㅡㅡ
나중에 되서야;;; 이상함을 깨닫고 찾아 내긴 했지만;;;
완전.. ㅜㅜ
흠....... 덕분에 매일 칼같이 돌아야 할 배치 작업이 돌지 못했고..
(머 그덕분에 다른 로직도 추가하고 좀더 완성형에 가까워졌지만...);;
아까운 점심시간도 반납을 해야 할 상황....
음........ 개발은 언제나 삽질로 난무 한듯..;;
조금이나마 Java 널 의심한 나를 용서해다오;;; 사실은 오라클이 이상하다고 생각했었어;; ㅜ
public String lengthString(Object obj, int length) {
if(obj == null || obj.toString().length() ==0) return "";
byte[] bytes = obj.toString().trim().getBytes();
if (length >= bytes.length) return obj.toString();
int counter = 0;
for (int i = length - 1; i >= 0; i--) {
if (((int) bytes[i] & 0x80) != 0)
counter++;
}
return new String(bytes, 0, length - (counter % 2));
}
if(obj == null || obj.toString().length() ==0) return "";
byte[] bytes = obj.toString().trim().getBytes();
if (length >= bytes.length) return obj.toString();
int counter = 0;
for (int i = length - 1; i >= 0; i--) {
if (((int) bytes[i] & 0x80) != 0)
counter++;
}
return new String(bytes, 0, length - (counter % 2));
}
해당 메소드에서 시작되었다;; 덕분에 오전 2시간을 날려 먹었지만;; ㅡㅡ
음..
디비에 넣기전에;;바이트 단위 길이를 체크 하여서 ...
넘어온 랭스 만큼만 짤라서 리턴해주어서 ;;
디비 입력길이를 맞춰주는 그러한 놈이 엇는데;;
이상하게도 ;;; 자꾸...
ORA-01401: 열에 입력한 값이 너무 큽니다 라는 오류만 나오는것;;
한두건 인서트 하는것도 아니고... 몇만건 인서트 도중에 나는 거라서 ;; ㅡㅡ 그것도 배치로 짤라서 몇천껀씩
보내는 작업인데;;
문제는 랭스 체크는 ... trim을 써서 체크를 하고...
공백이 제거된 글자열이 ... 해당 길이 문자열 보다 작으면 ...
그대로 trim을 한 놈을 리턴해야 하는데;;
trim이 바져 버렸던것;; ㅡㅡ;;;
완전 바보짓 한거지;; ㅡㅡ
나중에 되서야;;; 이상함을 깨닫고 찾아 내긴 했지만;;;
완전.. ㅜㅜ
흠....... 덕분에 매일 칼같이 돌아야 할 배치 작업이 돌지 못했고..
(머 그덕분에 다른 로직도 추가하고 좀더 완성형에 가까워졌지만...);;
아까운 점심시간도 반납을 해야 할 상황....
음........ 개발은 언제나 삽질로 난무 한듯..;;
조금이나마 Java 널 의심한 나를 용서해다오;;; 사실은 오라클이 이상하다고 생각했었어;; ㅜ
댓글을 달아 주세요