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

Zestaw znaków Oracle JDBC i limit 4000 znaków

Przed Oracle 12.1, VARCHAR2 kolumna jest ograniczona do przechowywania 4000 bajtów danych w zestawie znaków bazy danych, nawet jeśli jest zadeklarowana VARCHAR2(4000 CHAR) . Ponieważ każdy znak w ciągu wymaga 2 bajtów pamięci w zestawie znaków UTF-8, nie będzie można przechowywać więcej niż 2000 znaków w kolumnie. Oczywiście ta liczba zmieni się, jeśli niektóre z twoich postaci faktycznie będą wymagały tylko 1 bajtu pamięci lub jeśli niektóre z nich wymagają więcej niż 2 bajty pamięci. Gdy zestaw znaków bazy danych to Windows-1252, każdy znak w ciągu wymaga tylko jednego bajtu pamięci, więc będziesz mógł przechowywać 4000 znaków w kolumnie.

Ponieważ masz dłuższe ciągi, czy byłoby możliwe zadeklarowanie kolumny jako CLOB? zamiast jako VARCHAR2 ? To (efektywnie) usunęłoby ograniczenie długości (istnieje ograniczenie rozmiaru CLOB to zależy od wersji Oracle i rozmiaru bloku, ale przynajmniej mieści się w zakresie wielu GB).

Jeśli używasz Oracle 12.1 lub nowszego, max_string_size parametr umożliwia zwiększenie maksymalnego rozmiaru VARCHAR2 kolumna od 4000 bajtów do 32767 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. ORA-6502 z wyzwalaczem Grant Logging

  2. wstawianie/aktualizacje/usuwanie logów w bazie danych Oracle

  3. Nieprawidłowy identyfikator w podwójnie zagnieżdżonym zapytaniu z ORDER BY i ROWNUM

  4. Jak zaimportować zestaw kopii zapasowych Oracle 11g RMAN na nowy serwer bazy danych?

  5. Zmień rozmiar nazw tabel/kolumn/indeksów w Oracle 11g lub 12c