Resumé: I denne vejledning lærer du om Oracle VARCHAR2-datatypen, og hvordan du bruger den til at definere kolonner med tegnstrenge med variabel længde.

Indledning til Oracle VARCHAR2-datatypen

For at gemme tegnstrenge med variabel længde bruger du Oracle VARCHAR2-datatypen. En VARCHAR2-kolonne kan gemme en værdi, der spænder fra 1 til 4000 bytes. Det betyder, at du for et tegnsæt med en enkelt byte kan gemme op til 4000 tegn i en VARCHAR2-kolonne.

Når du opretter en tabel med en VARCHAR2-kolonne, skal du angive den maksimale strenglængde, enten i bytes:

eller i tegn

Som standard bruger Oracle BYTE, hvis du ikke udtrykkeligt angiver BYTE eller CHAR efter max_size. Med andre ord kan en VARCHAR2(N)-kolonne indeholde op til N bytes tegn.

Hvis du gemmer en tegnstreng, hvis størrelse overstiger den maksimale størrelse af VARCHAR2-kolonnen, udsender Oracle en fejl.

Til eksempel, hvis du definerer en VARCHAR2-kolonne med en maksimal størrelse er 20. I et tegnsæt med en enkelt byte kan du gemme op til 20 tegn. Hvis du gemmer 21 tegn eller mere, returnerer Oracle en fejl.

Hvis du derudover gemmer 10 tegn i en VARCHAR2(20)-kolonne, bruger Oracle kun 10 byte til lagring og ikke 20 byte. Derfor hjælper brugen af VARCHAR2-datatypen dig med at spare plads, der bruges af tabellen.

Når du sammenligner VARCHAR2-værdier, bruger Oracle den ikke-polstrede sammenligningssemantik.

Oracle VARCHAR2 max length

Siden Oracle Database 12c kan du angive den maksimale størrelse på 32767 for VARCHAR2-datatypen. Oracle bruger parameteren MAX_STRING_SIZE til at styre den maksimale størrelse. Hvis MAX_STRING_SIZE er STANDARD, er den maksimale størrelse for VARCHAR2 4000 bytes. Hvis MAX_STRING_SIZE er EXTENDED, er størrelsesgrænsen for VARCHAR2 32767.

For at få værdien af parameteren MAX_STRING_SIZE skal du bruge følgende forespørgsel:

Og du kan bruge følgende anvisning:

Oracle VARCHAR2 eksempler

Følgende anvisning opretter en ny tabel ved navn econtacts til lagring af medarbejdernes nødkontakter.

Tabellen econtacts har tre VARCHAR2-kolonner: first_name, last_name og phone.

Den følgende anvisning indsætter en ny række i tabellen econtacts:

Det virkede som forventet, fordi inddataene ikke overstiger den maksimale størrelse af VARCHAR2-kolonnen.

Det lykkes imidlertid ikke at indsætte følgende erklæring:

Da det indtastede fornavn overstiger den maksimale længde af first_name-kolonnen, udstedte Oracle følgende fejl:

I denne vejledning har du lært om Oracle VARCHAR2 og om, hvordan du bruger VARCHAR2-datatypen til at definere kolonner med tegnstrenge med variabel længde i en tabel.

  • Var denne vejledning nyttig?
  • JaNej

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.