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

12c VARCHAR2(32767)

Zawsze zastanawiałem się, dlaczego typ danych VARCHAR2 był ograniczony do tak małej liczby znaków. W przypadku większości atrybutów nie potrzebujesz więcej niż 2000 bajtów. Pamiętam, jak Oracle podniosło limit z 2000 bajtów do 4000. Ale SQL Server 2008R2 pozwala na użycie 8000. Mówimy o danych znakowych, a limit 2000 lub 4000 bajtów wydawał mi się arbitralny. Teraz w Oracle 12c możesz użyć VARCHAR2 (32767) do maksymalnie 32 KB. Ale zanim będziesz mógł korzystać z tej nowej funkcji, musisz trochę popracować. Po wyjęciu z pudełka otrzymasz błąd.

SQL> utwórz tabelę test_tab (val varchar2(32000));utwórz tabelę test_tab (val varchar2(32000))                                   *BŁĄD w wierszu 1:ORA-00910:określona długość jest za długa dla tego typu danych

Oracle 12c zawiera nowy parametr, MAX_STRING_SIZE, który kontroluje, jak duży może być typ danych VARCHAR2. Ten parametr można ustawić na STANDARDOWY lub ROZSZERZONY. Wartość domyślna to STANDARD, która ogranicza VARCHAR2 do 4000 bajtów. Zmiana tego parametru ze standardowego na ROZSZERZONY to podróż w jedną stronę. Nie możesz się cofnąć. Aby dokonać zmiany, musisz URUCHAMIAĆ UAKTUALNIENIE instancji, zmodyfikować parametr i uruchomić skrypt.

sql> wyłączenie natychmiastowa Zamknięta system set max_string_size=EXTENDED scope=oba;Zmieniony system.SQL> @?/rdbms/admin/utl32k.sql

To może trochę potrwać. Po zakończeniu odbij instancję, aby otworzyć się normalnie.

Mogę teraz utworzyć tabelę z tym większym typem danych.

SQL> utwórz tabelę test_tab (val varchar2(32000));Tabela utworzona.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można pobrać identyfikatora ostatniego wstawionego wiersza w Hibernate za pomocą Oracle

  2. SQLException:naruszenie protokołu. Problem ze sterownikiem Oracle JDBC

  3. Jak mogę wyodrębnić pliki z pola Oracle BLOB?

  4. InMemory DUPLIKAT Zamieszanie w Oracle RAC

  5. Pierwsze kroki z SQL w Oracle Application Express