by zumsim [SQL Query] [2019.02.01 09:59:57]
회사 업무 중에 학생 사번을 가지고 데이터를 뽑아오는 쿼리가 있습니다.
근데 다른 학생들은 잘 불러와지는데 한명의 학생만 에러가 납니다
오류 코드는 ORA-01722: 수치가 부적합합니다 인데요..
도저히 이유를 모르겠습니다...
자료 추출 로직 중에 문자를 숫자로 변환하는 부분이 있는지 확인하세요. 명시적 변환이 아니더라도 암시적으로 변환되는 부분이 존재할 수 있습니다. 숫자로 변환되지 못하는 문자데이터가 있는지 확인하세요.
WITH T AS ( SELECT 111 EMP_NO FROM DUAL ) SELECT * FROM T WHERE EMP_NO = 'A' 이런경우 아닌가요? 숫자형 컬럼에 문자형으로 조회
아니요 문자형 컬럼에 문자형 조회입니다..ㅜㅜ
사번컬럼은 varchar로 해줘서 쿼리로 넘겨줄때 문자로 변환해서 넘겨주고 있습니다...
정말 신기한건 같은 쿼리를 타는데 다른 학생들은 정상작동하고 이 학생만 이런 문제가 발생되고 있구요
다른 테이블들에서는 오류없이 데이터를 잘 꺼내오는데 유독 저 한 테이블에서만 저런 에러가 나서 속터지겠습니다...
꼭 명시적 변환만 생각해서는 안됩니다. 묵시적 변환이 발생하는지도 확인하세요. 도저히 못찾겠으면 쿼리를 올려주세요.
해결했습니다..
사번이 문제가 아니더군요.. 사번으로 쿼리에서 데이터를 가져올 때 NVL로 NULL체크를 하는데 거기서 문제였습니다..