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