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

Forskellen mellem VARCHAR2(10 CHAR) og NVARCHAR2(10)

NVARCHAR2-datatypen blev introduceret af Oracle til databaser, der ønsker at bruge Unicode til nogle kolonner og samtidig beholde et andet tegnsæt for resten af ​​databasen (som bruger VARCHAR2). NVARCHAR2 er kun en Unicode-datatype.

En grund til, at du måske vil bruge NVARCHAR2, kan være, at din DB bruger et ikke-Unicode-tegnsæt, og du stadig ønsker at kunne gemme Unicode-data for nogle kolonner uden at ændre det primære tegnsæt. En anden grund kan være, at du vil bruge to Unicode-tegnsæt (AL32UTF8 for data, der hovedsageligt kommer fra Vesteuropa, AL16UTF16 for data, der for eksempel kommer fra Asien), fordi forskellige tegnsæt ikke vil gemme de samme data lige så effektivt.

Begge kolonner i dit eksempel (Unicode VARCHAR2(10 CHAR) og NVARCHAR2(10) ) ville være i stand til at gemme de samme data, men byte-lageret vil være anderledes. Nogle strenge kan gemmes mere effektivt i den ene eller den anden.

Bemærk også, at nogle funktioner ikke fungerer med NVARCHAR2, se dette SO-spørgsmål:

  • Oracle Text fungerer ikke med NVARCHAR2. Hvad ellers kan være utilgængeligt?


  1. Relation eksisterer ikke

  2. WordPress MySQL SQL-forespørgselsfejl i WPDB-klassen

  3. Udførelsesplanens indvirkning på ASYNC_NETWORK_IO Venter – Del 1

  4. 6 almindelige fejlscenarier for MySQL og MariaDB, og hvordan man løser dem