Типът данни NVARCHAR2 е въведен от Oracle за бази данни, които искат да използват Unicode за някои колони, като същевременно запазват друг набор от знаци за останалата част от базата данни (която използва VARCHAR2). NVARCHAR2 е тип данни само за Unicode.
Една от причините, поради които може да искате да използвате NVARCHAR2, може да е, че вашата DB използва набор от символи, различен от Unicode, и все пак искате да можете да съхранявате Unicode данни за някои колони, без да променяте основния набор от знаци. Друга причина може да е, че искате да използвате два набора символи Unicode (AL32UTF8 за данни, които идват предимно от Западна Европа, AL16UTF16 за данни, които идват предимно от Азия например), тъй като различните набори от знаци няма да съхраняват едни и същи данни еднакво ефективно.
И двете колони във вашия пример (Unicode VARCHAR2(10 CHAR)
и NVARCHAR2(10)
) ще може да съхранява същите данни, но съхранението на байтове ще бъде различно. Някои низове може да се съхраняват по-ефективно в едната или другата.
Имайте предвид също, че някои функции няма да работят с NVARCHAR2, вижте този въпрос SO:
- Oracle Text няма да работи с NVARCHAR2. Какво друго може да не е налично?