ORA-01722 오류는 DATA TYPE에 맞지 않게 질의를 했을 경우에 발생하는 오류로, 보통 실수에 의해 순서 맞지 않게 넣어다던지, TYPE이 맞지 않는 형을 넣었을 경우에 발생해서 비교적 간단하게 찾으시는 구문오류 중 하나입니다. 아래와 같은 경우에 종종 발생하니 실수하지 말아야겠습니다.
컬럼1 > ID : VARCHAR 형
컬럼2 > NUM : INT 형
-- ORACLE은 기본적으로 컬럼의 순서가 맞아야 하는데
-- 순서에 맞지 않게 넣은 경우 발생합니다. (DATA TYPE이 다르게 들어가면서 에러발생)
INSERT INTO 테이블명(ID, NUM) VALUES (1, '01');
-- DATA TYPE을 다르게 조회할 경우에 발생
SELECT * FROM 테이블명 WHERE NUM = '1';
-- SELECT 문에서 숫자와 문자가 혼용된 연산의 경우 발생
-- '550'만 있었다면 정상, 550과 TEST가 섞이면서 문자열로 인식.
'550TEST' - 500