sql >> Database >  >> RDS >> Oracle

Verschil tussen VARCHAR2(10 CHAR) en NVARCHAR2(10)

Het NVARCHAR2-datatype is door Oracle geïntroduceerd voor databases die Unicode willen gebruiken voor sommige kolommen, terwijl ze een andere tekenset behouden voor de rest van de database (die VARCHAR2 gebruikt). De NVARCHAR2 is een datatype met alleen Unicode.

Een van de redenen waarom u NVARCHAR2 wilt gebruiken, kan zijn dat uw database een niet-Unicode-tekenset gebruikt en u toch Unicode-gegevens voor sommige kolommen wilt kunnen opslaan zonder de primaire tekenset te wijzigen. Een andere reden kan zijn dat u twee Unicode-tekensets wilt gebruiken (AL32UTF8 voor gegevens die voornamelijk uit West-Europa komen, AL16UTF16 voor gegevens die voornamelijk uit Azië komen) omdat verschillende tekensets dezelfde gegevens niet even efficiënt kunnen opslaan.

Beide kolommen in uw voorbeeld (Unicode VARCHAR2(10 CHAR) en NVARCHAR2(10) ) dezelfde gegevens kunnen opslaan, maar de byteopslag zal anders zijn. Sommige strings kunnen efficiënter in de een of de ander worden opgeslagen.

Merk ook op dat sommige functies niet werken met NVARCHAR2, zie deze SO-vraag:

  • Oracle Text werkt niet met NVARCHAR2. Wat is er nog meer niet beschikbaar?


  1. MySQL is nu() +1 dag

  2. Hoe een array te maken in PostgreSQL

  3. Fix Error:"SELECT's links en rechts van UNION hebben niet hetzelfde aantal resultaatkolommen" in SQLite

  4. Gegevens filteren met de JDBC RowSet