반응형
DB에서 작업을 하다가 ORA-01722: 수치가 부적합합니다라는 아래와 같은 오류가 나왔습니다.
오류 로그ORA-01722: 수치가 부적합합니다 01722. 00000 - "invalid number" *Cause: The specified number was invalid. *Action: Specify a valid number. |
저의 경우는 두 테이블을 조인하는 과정에서 나온 오류인데 알고보니 조인하는 조건값의 데이터 타입이 달랐기 때문이었습니다.
즉, 한쪽은 문자열(String) 타입이고 한쪽은 숫자(Number)로 된 두 컬럼을 조인하려고 해서 나온 오류입니다.
저의 상황을 간단하게 예시로 들자면 아래와 같습니다.
SELECT
MEMBER_NO,
NAME,
ID,
PWD
FROM
MEMBER_INFO MI,
MEMBER_ADD MA
WHERE
MI.MEMBER_NO = MA.MEMBER_NO;
회원정보를 담고있는 MEMBER_INFO 테이블과 MEMBER_ADD 테이블이 있고, 그 테이블에 각각 MEMBER_NO라는 컬럼이 있다고 가정한 쿼리문인데 이것만 봐서는 문제가 없어보입니다.
하지만 MEMBER_INFO 테이블의 MEMBER_NO는 숫자(Number) 타입이고 MEMBER_ADD 테이블의 MEMBER_NO는 문자(CHAR) 타입이어서 이런 오류가 나는거였습니다.
물론 실제 서비스되는 것 중에 DB를 처음 설계할 때 이런 것들은 당연히 데이터 타입을 일치시키는 게 맞지만 간혹가다가 이렇게 다른 경우가 있더라고요.
이럴 땐 쿼리를 짤 때 두 데이터 타입이 일치하도록 형변환을 해주시면 됩니다.
ORACLE에서 형변환과 관련된 내용은 이전에 정리한 적이 있으니 아래의 글을 참고해주세요.
반응형
'개발 > 오류' 카테고리의 다른 글
[Eclipse 오류] Dynamic Web Module facet version was not found 에러 (1) | 2024.11.10 |
---|---|
[에러] The import javax.annotation.Resource cannot be resolved (0) | 2023.08.31 |
SQLSyntaxErrorException (0) | 2021.11.22 |
BadSqlGrammarException (0) | 2021.11.21 |
SqlMapException (0) | 2021.11.20 |