위 문장에서 hire_date 컬럼은 날짜형인 DATE형인데 실제 입력하는 데이터는 ‘2018-01-01’인 문자형 데이터를 넣었습니다. 그런데 오류가 나지 않고 정상적으로 입력되었습니다. 왜일까요? 결론부터 말하면 ‘2018-01-01’이 문자형 데이터이긴 하나 날짜 형식에 맞는 데이터이므로 오라클이 자동으로 날짜형으로 변환해 줬기 때문에 정상 입력된 것입니다. 이렇게 자동으로 형변환을 해주는 것을 묵시적 형변환이라고 합니다. 반면 이 절에서 배운 형변환 함수를 사용해 데이터형을 변환하는 것을 명시적 형변환이라고 합니다. 비록 오라클이 자동으로 형변환을 해 주긴 하지만 항상 형변환 함수를 사용해 명시적 형변환을 해 주는 것이 좋습니다. 따라서 쿼리 4-1을 제대로 다시 작성하면 다음과 같습니다.
쿼리 6-6 명시적 형변환
INSERT INTO emp03 ( emp_id, emp_name, gender, age, hire_date )
VALUES ( 1, '홍길동', '남성', 33, TO_DATE('2018-01-01', 'YYYY-MM-DD') );