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

Różnica między BYTE i CHAR w kolumnowych typach danych

Załóżmy, że zestaw znaków bazy danych to UTF-8, co jest zalecanym ustawieniem w najnowszych wersjach Oracle. W takim przypadku, niektóre znaki wymagają więcej niż 1 bajtu do zapisania w bazie danych.

Jeśli zdefiniujesz pole jako VARCHAR2(11 BYTE) , Oracle może używać do 11 bajtów do przechowywania, ale w rzeczywistości może nie być możliwe przechowywanie 11 znaków w polu, ponieważ niektóre z nich zajmują więcej niż jeden bajt, np. znaki inne niż angielskie.

Definiując pole jako VARCHAR2(11 CHAR) mówisz Oracle, że może użyć wystarczająco dużo miejsca, aby przechować 11 znaków, bez względu na to, ile bajtów potrzeba do przechowania każdego z nich. Pojedynczy znak może wymagać do 4 bajtów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zresetować skumulowaną sumę?

  2. ORA-00838

  3. Obrót w Oracle 11g

  4. Oracle 11g — Sprawdź ograniczenie za pomocą RegEx

  5. Dlaczego otrzymuję ten wyjątek SQLSyntaxErrorException:ORA-00933:Polecenie SQL nie zostało poprawnie zakończone, gdy próbuję wykonać to zapytanie JDBC?