Jeg har altid undret mig over, hvorfor VARCHAR2-datatypen var begrænset til så få tegn. For de fleste attributter behøver du ikke mere end 2.000 bytes. Jeg kan huske, da Oracle hævede grænsen fra 2.000 bytes til 4.000. Men SQL Server 2008R2 lader dig bruge 8.000. Vi taler om tegndata, og grænsen på 2.000 eller 4.000 byte virkede lidt vilkårlig for mig. Nu i Oracle 12c kan du bruge VARCHAR2(32767) til maksimalt 32KB. Men før du kan bruge denne nye funktion, skal du gøre lidt arbejde. Ud af æsken får du en fejlmeddelelse.
SQL> create table test_tab (val varchar2(32000));create table test_tab (val varchar2(32000)) *FEJL ved linje 1:ORA-00910 for dens specificerede længde00910:Oracle 12c indeholder en ny parameter, MAX_STRING_SIZE, som styrer, hvor stor din VARCHAR2-datatype kan være. Denne parameter kan indstilles til STANDARD eller UDVIDET. Standarden er STANDARD, som begrænser VARCHAR2 til 4000 bytes. Ændring af denne parameter til standard til UDVIDET er en envejs tur. Du kan ikke vende tilbage. For at foretage ændringen skal du STARTE OPGRADERE instansen, ændre parameteren og køre et script.
sql> nedlukning øjeblikkeligt lukket. system set max_string_size=UDVIDET scope=begge;System ændret.SQL> @?/rdbms/admin/utl32k.sqlDette kan tage et stykke tid at køre. Når du er færdig, afviser du forekomsten for at åbne som normalt.
Jeg kan nu oprette en tabel med denne større datatype.
SQL> create table test_tab (val varchar2(32000));Tabel oprettet.