Oracle
 sql >> база данни >  >> RDS >> Oracle

За какво всъщност е типът данни на SQL национален знак (NCHAR)?

„НАЦИОНАЛЕН“ в този случай означава герои, специфични за различните националности. Особено далечните източни езици имат толкова много знаци, че един байт не е достатъчно място, за да ги различи всички. Така че, ако имате приложение само за английски (ascii) или поле само за английски , можете да се измъкнете, като използвате по-старите типове CHAR и VARCHAR, които позволяват само един байт на символ.

Въпреки това през повечето време трябва да използвате NCHAR/NVARCHAR. Дори и да не мислите, че трябва да поддържате (или потенциално да поддържате) няколко езика във вашите данни, дори приложенията само на английски език трябва да могат разумно да се справят с атаки за сигурност, използвайки знаци на чужди езици.

Според мен единственото място, където по-старите типове CHAR/VARCHAR все още се предпочитат, е за често споменавани вътрешни кодове само за ascii и данни на платформи като Sql Server, които поддържат разграничението - данни, които биха били еквивалентни на enum на клиентски език като C++ или C#.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Недефинирана грешка в индекса при получаване на резултати с помощта на името на полето в Oracle pdo връзка

  2. Множество набори от резултати с Oracle

  3. Бавна производителност на Hibernate + Java, но бърза, когато използвам TOAD със същата собствена заявка на Oracle

  4. връзка "един към много" с ограничение на базата данни и inverse=true

  5. Функция за агрегиране на Oracle за разпределяне на суми