반응형
이번 문제는 데이터 타입에 따라 INSERT할 때 에러가 발생할 수 있는 상황을 알아야 풀 수 있는 문제 입니다.
문제
아래 테이블에 데이터를 입력 시 에러가 발생하는 건은?
CREATE TABLE EMP (
A NUMBER(10) PRIMARY KEY,
B NUMBER(4,2),
C DATE,
D VARHCAR(10)
)
1. INSERT INTO EMP VALUES ( 1, 12, SYSDATE, 002 )
2. INSERT INTO EMP VALUES ( 2, 123.12, SYSDATE, '002' )
3. INSERT INTO EMP VALUES ( 3, 1.2, SYSDATE-1, '002' )
4. INSERT INTO EMP VALUES ( 5, 11.2, '20220101', 002 )
4. INSERT INTO EMP VALUES ( 6, 12.3, 20220430, 002 )
문제풀이
- NUMBER(3) : 정수 3자리 숫자까지 가능
- NUMBER(3,2) : 정수 1자리, 소숫점 2자리까지 가능
- 묵시적 형변환이란 다른 데이터 타입끼리 만났을 때 자동으로 데이터 타입이 변경되는 걸 말한다.
- VARCHAR(문자)타입은 날짜(DATE) 타입으로 묵시적 형변환이 가능
- VARCHAR(문자)타입은 숫자(NUMBER) 타입으로 묵시적 형변환이 가능
- 숫자(NUMBER) 타입에서 날짜(DATE) 타입으로 형변황이 불가능하다.
1. INSERT INTO EMP VALUES ( 1, 12, SYSDATE, 002 )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 데이터 타입 문제 없음
>> 네번째 자리 숫자에서 문자타입으로 형변환 가능하므로 문제 없음
2. INSERT INTO EMP VALUES ( 2, 123.12, SYSDATE, '002' )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 NUMBER(4,2)에는 4자리가 들어갈 수 없어서 에러 발생
>> 세번째 자리 데이터 타입 문제 없음
>> 네번째 자리 데이터 타입 문제 없음
3. INSERT INTO EMP VALUES ( 3, 1.2, SYSDATE-1, '002' )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 데이터 타입 문제 없음 ( SYSDATE -1은 전일을 리턴 )
>> 네번째 자리 데이터 타입 문제 없음
4. INSERT INTO EMP VALUES ( 5, 11.2, '20220101', 002 )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 문자 타입에서 날짜 타입으로 형변환이 가능하므로 문제 없음
>> 네번째 자리 데이터 타입 문제 없음
5. INSERT INTO EMP VALUES ( 6, 12.3, 20220430, 002 )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 숫자 타입에서 날짜 타입으로 형변환이 불가능해서 에러 발생
>> 네번째 자리 데이터 타입 문제 없음
오늘은 데이터 타입과 데이터 형변환에서 대해서 알아봤습니다.
추가적인 궁금증은 댓글로 달아주세요!! :)
반응형
'SQL' 카테고리의 다른 글
SQL 강의 SQLP SQLD 기출 문제 - 007 ( NULL 체크 함수 ) (0) | 2022.10.10 |
---|---|
SQL 강의 SQLP SQLD 기출 문제 - 006 ( ORACLE AUTO COMMIT ) (0) | 2022.10.10 |
SQL 강의 SQLP SQLD 기출 문제 - 004 / 다중 IN 조건 이해 (0) | 2022.10.07 |
SQL 강의 SQLP SQLD 기출 문제 - 003 / ORACLE OUTER JOIN 이해 (0) | 2022.10.06 |
SQL 강의 SQLP SQLD 기출 문제 - 002 ( NULL, CASE, DECODE, NVL 이해 ) (0) | 2022.10.06 |
댓글