Oracle
 sql >> Database >  >> RDS >> Oracle

Differenza tra VARCHAR2(10 CHAR) e NVARCHAR2(10)

Il tipo di dati NVARCHAR2 è stato introdotto da Oracle per i database che desiderano utilizzare Unicode per alcune colonne mantenendo un altro set di caratteri per il resto del database (che utilizza VARCHAR2). NVARCHAR2 è un tipo di dati solo Unicode.

Uno dei motivi per cui potresti voler utilizzare NVARCHAR2 potrebbe essere che il tuo DB utilizza un set di caratteri non Unicode e desideri comunque essere in grado di archiviare dati Unicode per alcune colonne senza modificare il set di caratteri primario. Un altro motivo potrebbe essere che si desidera utilizzare due set di caratteri Unicode (AL32UTF8 per dati provenienti principalmente dall'Europa occidentale, AL16UTF16 per dati provenienti principalmente dall'Asia, ad esempio) perché set di caratteri diversi non memorizzeranno gli stessi dati in modo altrettanto efficiente.

Entrambe le colonne nel tuo esempio (Unicode VARCHAR2(10 CHAR) e NVARCHAR2(10) ) sarebbe in grado di memorizzare gli stessi dati, tuttavia la memorizzazione dei byte sarà diversa. Alcune stringhe possono essere archiviate in modo più efficiente nell'una o nell'altra.

Nota anche che alcune funzionalità non funzioneranno con NVARCHAR2, vedi questa domanda SO:

  • Oracle Text non funzionerà con NVARCHAR2. Cos'altro potrebbe non essere disponibile?