NVARCHAR2-datatypen introducerades av Oracle för databaser som vill använda Unicode för vissa kolumner och samtidigt behålla en annan teckenuppsättning för resten av databasen (som använder VARCHAR2). NVARCHAR2 är en endast Unicode-datatyp.
En anledning till att du kanske vill använda NVARCHAR2 kan vara att din DB använder en icke-Unicode-teckenuppsättning och du fortfarande vill kunna lagra Unicode-data för vissa kolumner utan att ändra den primära teckenuppsättningen. En annan anledning kan vara att du vill använda två Unicode-teckenuppsättningar (AL32UTF8 för data som mestadels kommer från Västeuropa, AL16UTF16 för data som till exempel kommer från Asien) eftersom olika teckenuppsättningar inte lagrar samma data lika effektivt.
Båda kolumnerna i ditt exempel (Unicode VARCHAR2(10 CHAR)
och NVARCHAR2(10)
) skulle kunna lagra samma data, men bytelagringen kommer att vara annorlunda. Vissa strängar kan lagras mer effektivt i den ena eller den andra.
Observera också att vissa funktioner inte fungerar med NVARCHAR2, se denna SO-fråga:
- Oracle Text fungerar inte med NVARCHAR2. Vad mer kan vara otillgängligt?