문제
다음 SQL 중 에러가 발생하는 것의 개수는?
SELECT 10 / 0 FROM DUAL;
ㄴ. SELECT TO_NUMBER('ABC') FROM DUAL;
ㄷ. SELECT NVL(NULL, 0) FROM DUAL;
ㄹ. SELECT SUBSTR('ABC', 1, 2) FROM DUAL;
① 2개 ② 1개 ③ 3개 ④ 4개
정답
1번
해설
정답: 1. 10/0은 0으로 나누기 오류, TO_NUMBER('ABC')는 숫자 변환 오류가 발생한다. NVL과 SUBSTR은 정상 실행된다.
오답 풀이
- 1번: ㄱ, ㄴ 두 개가 오류이므로 2개가 정답이다.
- 2번: 오류가 하나가 아니라 두 개이다.
- 3번: ㄷ은 정상 실행된다.
- 4번: ㄷ, ㄹ은 정상 실행된다.
보충 개념 Oracle에서 0으로 나누면 ORA-01476 오류가 발생하고, 숫자로 변환할 수 없는 문자열을 TO_NUMBER에 전달하면 ORA-01722 오류가 발생한다.