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