DBAtlas · 데이터베이스 운영 아틀라스

ORA-01722: Invalid number

Oracle

의미

숫자 컨텍스트가 필요한 곳에 숫자로 변환할 수 없는 문자열이 사용되었다. 암시적 또는 명시적 변환이 실패했다.

원인

숫자 컬럼과 텍스트 비교(예: WHERE num_col = 'ABC'), 숫자 필드에 문자가 포함된 값 삽입, TO_NUMBER에 부적합한 포맷, 또는 소수점/그룹 구분자 불일치(쉼표 vs 마침표).

해결 방법

변환에 실패한 표현식을 찾는다. 대개 WHERE 조건 또는 INSERT 값이다. 텍스트/숫자 비교에서 타입 호환성을 보장하고 필요하면 명시적 변환을 사용한다: TO_NUMBER(my_column) 또는 텍스트 쪽에 TO_CHAR. 애플리케이션 계층에서 숫자 컬럼에 비숫자 입력이 들어가지 않도록 막는다. NLS_NUMERIC_CHARACTERS 설정에 주의한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목