[Oracle]오라클 ORA-01722 : 수치가 부적합합니다.
- 코딩/Oracle
- 2019. 8. 29.
ORA-01722 오류는 "invalid number" 즉, 수치가 부적합한 경우 발생하는 오류입니다. 이 오류는 데이터 타입이 NUMBER인 열에 문자열이 포함되어 있는 경우 발생할 수 있습니다.
이 오류를 해결하기 위해서는 다음과 같은 방법들을 시도해볼 수 있습니다.
원인
1. 데이터에 문자열이 포함되어 있는 경우
ORA-01722 오류는 데이터 타입이 NUMBER인 열에 문자열이 포함되어 있는 경우 발생합니다. 예를 들어, "123ABC"와 같은 문자열이 NUMBER 열에 포함되어 있다면, ORA-01722 오류가 발생할 수 있습니다.
2. 데이터의 포맷이 잘못된 경우
데이터의 포맷이 NUMBER 데이터 타입으로 적합하지 않은 경우에도 ORA-01722 오류가 발생할 수 있습니다. 예를 들어, "12.34.56"과 같이 소수점이 여러 개인 경우에도 ORA-01722 오류가 발생할 수 있습니다.
3. 빈 문자열이 있는 경우
데이터에 빈 문자열이 있는 경우에도 ORA-01722 오류가 발생할 수 있습니다. 빈 문자열은 NUMBER 데이터 타입으로 변환할 수 없기 때문입니다.
해결방법
1. 데이터 타입을 확인합니다.
데이터 타입이 NUMBER가 맞는지 확인합니다. 데이터 타입이 NUMBER가 아니라면, 데이터 타입을 변경하거나 적절한 타입으로 형변환을 시도해볼 수 있습니다.
2. 데이터에 문자열이 포함되어 있는지 확인합니다.
데이터에 문자열이 포함되어 있는 경우, 문자열을 숫자로 변환할 수 있는지 확인합니다. 예를 들어, TO_NUMBER 함수를 사용하여 문자열을 숫자로 변환할 수 있습니다.
3. 데이터의 포맷을 확인합니다.
데이터의 포맷이 올바른지 확인합니다. 예를 들어, 숫자의 포맷이 올바르게 입력되지 않은 경우에도 ORA-01722 오류가 발생할 수 있습니다.
4. 쿼리를 다시 작성합니다.
쿼리를 다시 작성하여 ORA-01722 오류를 회피할 수 있는 경우도 있습니다. 예를 들어, WHERE 절에서 숫자를 비교할 때 TO_NUMBER 함수를 사용하여 문자열을 숫자로 변환하는 방법이 있습니다.
'코딩 > Oracle' 카테고리의 다른 글
오라클 SQL UPDATE 문 (0) | 2019.08.29 |
---|---|
오라클 SQL LIKE문 (0) | 2019.08.29 |
오라클 ORA-00907: 누락된 우괄호 에러가 납니다 (1) | 2019.08.26 |
[ORACLE] ORA-00904 : 부적합한 식별자 invalid identifier (0) | 2019.08.23 |
[ORACLE] ora-01017 invalid username/password logon denied (0) | 2019.08.21 |