✔ varchar2와 nvarchar2의 차이점에 대해서
알파벳과 숫자만 들어가는 경우 VARCHAR2를 권장, 한글이 포함되는 경우 NVARCHAR2를 권장
가변형 길이로 최대길이를 지정하는 함
변수명 VARCHAR2(길이) / 변수명 NVARCHAR2(길이)
다만 길이의 의미가 다른데 VARCHAR2는 '바이트 수', NVARCHAR2는 '문자 수'를 길이로 처리한다.
길이 기준의 차이로 데이터가 짤리는 경우를 대비하기 위해서 NVARCHAR2를 사용하거나 VARCHAR2를 이용하면서 기존 길이의 1.5~2배로 설정하기도 한다.
과거에는 DB charterset이 유니코드 지원을 못하는 경우 타 DB와의 연동, 전사표준 등의 이유로 NLS CHARTERSET이 만약 KO16MSWIN949로 설정이 되었다면 한글을 2byte로 처리하면서 VARCHAR2() 같은 경우 한글 정렬을 할 때 문제가 생기거나 다국어를 입력할 수 없는 오류가 발생했기 때문에 NVARCHAR2를 사용했다고 하는데
최근에는 DB Charteset을 대부분 유니코드 지원되는 UTF-8 등으로 지정한 지도 오래 되었고 따라서 다국어를 지원하는 글로벌 회사들도 기본 NLS Charterset 만으로 한글 처리등에 문제가 없다면 N타입을 굳이 사용하지 않아도 된다고 하는데....
또 누구는 NVARCHAR2가 아무래도 유연하기도 하고 요즘은 서버의 성능과 DB 처리 능력이 좋아져서 전부 NVARCHAR로 처리해도 문제가 없다고 한다....
VARCHAR는 저장 공간 활용면에서 유리하고 NVARCHAR은 처리 성능면에서 유리하고? 🤔🤔🤔
나중에 취업하면 회사 내규를 따르는 걸로.... ^^!
🐷 참고 문서
varchar / nvarchar 차이
Oracle Character Set에 관한 글
NVARCHAR2 도대체 몇자까지 들어가는건지