보통 data를 insert 및 update하는 상황에서, 기본적으로는 각 속성의 data type에 맞게 입력해주는 것이 필요하다.
따라서 data type이 맞지 않다면, TO_NUMBER나 TO_CHAR 등 명시적 형변환을 통해 정확한 data를 입력해주어야 한다.
하지만 RDBMS에서 서로 data type이 맞지 않더라도, 자동으로 형변환을 해서 data를 입력해주기도 하는데, 이를 묵시적 형변환이라 한다.
Oracle RDBMS에서 DATE, EMPL_NO 속성의 data type이 각각 DATE, VARCHAR2(100)으로 정해져있는 상태에서 data를 INSERT 한다고 한다.
INSERT INTO TABLE(DATE, EMPL_NO)
VALUES (TO_DATE('20221202', 'YYYY/MM/DD'), TO_CHAR(100));
INSERT INTO TABLE(DATE, EMPL_NO)
VALUES ('2022-10-24', 100);
※ 위 SQL 문장에서 DATE의 경우 문자열 형식으로 입력되었으나, 형태가 YYYY-MM-DD로 자동 형변환 되었다. 마찬가지로 EMPL_NO 역시 NUMBER 형식으로 입력되었으나, 형태가 문자열로 자동 형변환 되었다.
이처럼 형변환이 이루어질 수 있는 형태의 data가 입력된다면, RDBMS측에서 자동으로 data type을 변환하여 입력해준다.
참고로 조회(SELECT)시, "웬만해서는" 조건절에서는 명확한 형태를 입력해주어야 한다(수치가 부적합하다는 오류 발생).
SELECT EMPL_NAME FROM TABLE
WHERE EMPL_NAME = 2 (수치가 부적합합니다 오류 발생)
해당 속성은 문자열 형태이지만, <모든> 데이터가 '001' '002'와 같이 일괄적으로 입력되어야 자동 형변환이 가능해진다.
자동 형변환 유형 - https://sorrow16.tistory.com/153
DATE type의 자동 형변환 - https://thebook.io/080202/ch06/02/04-04/