Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Różnica między VARCHAR2 (10 CHAR) a NVARCHAR2 (10)

Typ danych NVARCHAR2 został wprowadzony przez Oracle dla baz danych, które chcą używać Unicode dla niektórych kolumn, jednocześnie zachowując inny zestaw znaków dla reszty bazy danych (która używa VARCHAR2). NVARCHAR2 jest typem danych tylko w Unicode.

Jednym z powodów, dla których możesz chcieć użyć NVARCHAR2 może być to, że twoja baza danych używa zestawu znaków innego niż Unicode i nadal chcesz mieć możliwość przechowywania danych Unicode dla niektórych kolumn bez zmiany podstawowego zestawu znaków. Innym powodem może być to, że chcesz użyć dwóch zestawów znaków Unicode (AL32UTF8 dla danych pochodzących głównie z Europy Zachodniej, AL16UTF16 dla danych pochodzących głównie z Azji), ponieważ różne zestawy znaków nie będą przechowywać tych samych danych równie wydajnie.

Obie kolumny w twoim przykładzie (Unicode VARCHAR2(10 CHAR) i NVARCHAR2(10) ) będzie w stanie przechowywać te same dane, jednak pamięć bajtowa będzie inna. Niektóre ciągi mogą być przechowywane wydajniej w jednym lub drugim.

Zauważ również, że niektóre funkcje nie będą działać z NVARCHAR2, zobacz to pytanie SO:

  • Oracle Text nie będzie działać z NVARCHAR2. Co jeszcze może być niedostępne?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest powód / użyteczność użycia słowa kluczowego ENABLE w instrukcjach bazy danych Oracle?

  2. Jak wywołać procedurę składowaną w JDBC

  3. Błąd:PLS-00428:w tej instrukcji oczekiwana jest klauzula into

  4. Kursor Oracle do przypisania

  5. Wywołaj funkcję pl/sql w javie?