by 쿠키 [Oracle 에러코드] [2024.04.23 09:20:19]
INSERT INTO AAA
SELECT * FROM BBB;
에서 AAA와 BBB의 모든 컬럼의 데이터 형식을 동일하게 맞추었는데도
'ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다.'이런 오류가 나오는데요... 무엇을 더 확인해봐야 이 문제를 해결할 수 있을까요?
자릿수 확인 (예 : 3자리 컬럼에 5자리 입력)
형식과 자릿수 모두 다 맞추었습니다! 그런데도 자꾸 저 오류가 뜹니다..
어딘가 놓친 부분이 있을 듯 합니다. 에러 메시지 보시면 컬럼명 나오지 않나요? 해당 컬럼 정보 및 데이터 한번 더 확인해 보세요.
보니까 INSERT INTO 할때 각 테이블끼리 컬럼 순서를 맞추지 않았었습니다..!! 기본적인 것을 잊고있었네요,, 도움 주셔서 감사합니다!!
데이터 형식을 동일하게 하였다면 순서를 확인해보세요. * 대신 명시적으로 컬럼명을 지정해보세요.
ex)
(COL1, COL2)
SELECT COL1, COL2
FROM BBB;
엇 그렇네요 ,,, 너무 기본적인것을 간과하고 있었네요! 감사합니다!!
INSERT 구문 사용시 컬럼정의는 필수처럼 사용하시길 권장드립니다.
네 알겠습니다!! 감사합니다!!!
에러메시지를 대하는 자세 에러메시지를 의심하지 않아야 합니다. 절대 그럴 리가 없다는 생각을 가지는 순간 오류를 벗어날 수 없습니다. 메시지를 그대로 받아들이셔야 빠른 오류 탈출이 가능합니다. 대부분의 오류는 에러메시지 속에 답이 있습니다.
네! 항상 에러메세지를 의심하지 않고 에러메세지로 부터 해결책을 찾겠습니다! 항상 질문에 답변해주시고 도움주셔서 감사합니다!!