Jag har alltid undrat varför VARCHAR2-datatypen var begränsad till så få tecken. För de flesta attribut behöver du inte mer än 2 000 byte. Jag minns när Oracle höjde gränsen från 2 000 byte till 4 000. Men SQL Server 2008R2 låter dig använda 8 000. Vi pratar om teckendata och gränsen på 2 000 eller 4 000 byte verkade ganska godtycklig för mig. Nu i Oracle 12c kan du använda VARCHAR2(32767) för maximalt 32KB. Men innan du kan använda den här nya funktionen måste du göra lite arbete. När du är i förpackningen får du ett felmeddelande.
SQL> create table test_tab (val varchar2(32000));create table test_tab (val varchar2(32000)) *ERROR vid rad 1:ORA-00910 före specificerad längd00910:Oracle 12c innehåller en ny parameter, MAX_STRING_SIZE som styr hur stor din VARCHAR2-datatyp kan vara. Denna parameter kan ställas in på STANDARD eller Utökad. Standard är STANDARD som begränsar VARCHAR2 till 4000 byte. Att ändra denna parameter till standard till FÖRLÄNGD är en enkel resa. Du kan inte gå tillbaka. För att göra ändringen måste du STARTA UPPGRADERA instansen, ändra parametern och köra ett skript.
sql> avstängning av omedelbart stängd. system set max_string_size=EXTENDED scope=both;System ändrat.SQL> @?/rdbms/admin/utl32k.sqlDetta kan ta ett tag att köra. När du är klar studsar du instansen så att den öppnas som vanligt.
Jag kan nu skapa en tabell med den här större datatypen.
SQL> skapa tabell test_tab (val varchar2(32000)); Tabell skapad.