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.
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.