🌱 4편. 데이터 타입과 NULL 처리 특성
오라클에서 데이터를 다룰 때는 데이터 타입을 정확히 이해하고, NULL 처리 방식에 주의해야 예상치 못한 오류나 성능 저하를 방지할 수 있습니다.
이번 글에서는 주요 데이터 타입, NULL 비교의 특징, NVL/COALESCE 함수 사용법 등을 정리합니다.
📌 주요 데이터 타입 요약
타입 | 설명 | 예시 |
---|---|---|
NUMBER(p,s) |
숫자형. p: 전체 자리수, s: 소수점 이하 자리수 | NUMBER(5,2) → 최대 999.99 |
VARCHAR2(n) |
가변 길이 문자열. 최대 4000 byte | '홍길동', 'abc123' |
CHAR(n) |
고정 길이 문자열. 부족한 부분은 공백으로 채움 | 'A ' |
DATE |
날짜 및 시간(초 단위까지 포함) | TO_DATE('2025-05-01', 'YYYY-MM-DD') |
CLOB |
긴 텍스트 저장용 문자 타입 | 1MB 이상의 설명글 등 |
BLOB |
이진 데이터 저장 (이미지, PDF 등) | 사진, 문서 파일 |
TIP: 문자열은 가급적 VARCHAR
대신 VARCHAR2
사용. Oracle은 VARCHAR를 ANSI 예약어로 처리함.
⚠ NULL 처리 시 주의사항
- NULL은 값이 아님 → 비교 연산자(
=, !=
)로 비교할 수 없음 - 비교 시 반드시
IS NULL
,IS NOT NULL
사용
❌ 잘못된 예시
-- 결과 없음
SELECT * FROM EMP WHERE COMM = NULL;
✅ 올바른 예시
SELECT * FROM EMP WHERE COMM IS NULL;
💡 NULL 처리 함수: NVL / COALESCE
🧩 NVL 함수
- 형식:
NVL(표현식, 대체값)
- 표현식이 NULL이면 대체값 반환
SELECT ENAME, NVL(COMM, 0) AS COMM
FROM EMP;
🧠 COALESCE 함수
- 형식:
COALESCE(expr1, expr2, ...)
- 첫 번째 NULL이 아닌 값을 반환
SELECT COALESCE(COMM, SAL, 0) AS 보너스
FROM EMP;
TIP: COALESCE는 다중 조건 처리에 유용하며, CASE WHEN
구문을 간결하게 대체할 수 있습니다.
📐 NLS_LENGTH_SEMANTICS 설정
한글 같은 멀티바이트 문자는 1 char = 3 byte로 처리될 수 있으므로,
문자 수 단위로 제한을 걸고 싶다면 다음과 같이 설정해야 합니다.
ALTER SESSION SET NLS_LENGTH_SEMANTICS = CHAR;
📝 마무리
이번 글에서는 Oracle에서 자주 사용하는 데이터 타입과 NULL 처리 방법을 정리했습니다.
다음 글에서는 인덱스의 구조와 실전 튜닝 전략을 다루겠습니다.
'database > oracle' 카테고리의 다른 글
📄 6편. 뷰(View), 시퀀스(Sequence), 동의어(Synonym) 활용법 (0) | 2025.05.06 |
---|---|
📄 5편. 인덱스(Index) 구조와 실전 튜닝 전략 (0) | 2025.05.06 |
🌱 3편. DML / DDL 기본 명령어 정리 (0) | 2025.05.06 |
🌱 2편. 오라클 설치 및 환경 설정 (Windows / Linux) (0) | 2025.05.06 |
🌱 1편. Oracle Database란 무엇인가 – 기업용 데이터베이스의 대표주자 | 오라클 아키텍쳐 (0) | 2025.04.08 |
댓글