Samenvatting: in deze tutorial leer je over het Oracle VARCHAR2
datatype en hoe je het kunt gebruiken om kolommen met tekenreeksen met variabele lengte te definiëren.
Inleiding tot het Oracle VARCHAR2 datatype
Om tekenreeksen met variabele lengte op te slaan, gebruik je het Oracle VARCHAR2
datatype. Een VARCHAR2
kolom kan een waarde opslaan die varieert van 1 tot 4000 bytes. Dit betekent dat u voor een single-byte tekenset maximaal 4000 tekens in een VARCHAR2
kolom kunt opslaan.
Wanneer u een tabel met een VARCHAR2
kolom maakt, moet u de maximale tekenreekslengte opgeven, hetzij in bytes:
of in tekens
Aan standaard, gebruikt Oracle BYTE
als u niet expliciet BYTE
of CHAR
na de max_size
opgeeft. Met andere woorden, een VARCHAR2(N)
kolom kan maximaal N
bytes aan tekens bevatten.
Als u een tekenreeks opslaat waarvan de grootte groter is dan de maximale grootte van de VARCHAR2
kolom, geeft Oracle een fout.
Bijvoorbeeld, als u een VARCHAR2
kolom definieert met een maximale grootte is 20. In een single-byte tekenset, kunt u maximaal 20 tekens opslaan. Als u 21 tekens of meer opslaat, geeft Oracle een foutmelding.
Bovendien, als u 10 tekens opslaat in een VARCHAR2(20)
kolom, gebruikt Oracle slechts 10 bytes voor opslag, niet 20 bytes. Daarom helpt het gebruik van VARCHAR2
-gegevenstype u om ruimte te besparen die door de tabel wordt gebruikt.
Bij het vergelijken van VARCHAR2
-waarden gebruikt Oracle de niet-opgevulde vergelijkingssemantiek.
Oracle VARCHAR2 max length
Sinds Oracle Database 12c kunt u de maximale grootte van 32767 opgeven voor het VARCHAR2
-gegevenstype. Oracle gebruikt de parameter MAX_STRING_SIZE
voor het regelen van de maximale grootte. Als de MAX_STRING_SIZE
STANDARD
is, dan is de maximale grootte voor VARCHAR2
4000 bytes. In het geval dat de MAX_STRING_SIZE
EXTENDED
is, dan is de maximale grootte voor VARCHAR2
32767.
Om de waarde van de MAX_STRING_SIZE
parameter te verkrijgen, gebruikt u de volgende query:
Of u gebruikt het volgende statement:
Oracle VARCHAR2 examples
Het volgende statement creëert een nieuwe tabel met de naam econtacts
om de noodcontacten van werknemers op te slaan.
De econtacts
tabel heeft drie VARCHAR2
kolommen: first_name
, last_name
, en phone
.
Het volgende statement voegt een nieuwe rij in de econtacts
tabel in:
Het werkte zoals verwacht omdat de invoergegevens niet groter zijn dan de maximale grootte van de VARCHAR2
kolom.
Het volgende statement slaagt er echter niet in in te voegen:
Omdat de ingevoerde voornaam de maximale lengte van de first_name
kolom overschrijdt, gaf Oracle de volgende foutmelding:
In deze tutorial hebt u meer geleerd over de Oracle VARCHAR2
en hoe u het VARCHAR2
gegevenstype kunt gebruiken om kolommen met tekenreeksen met variabele lengte in een tabel te definiëren.
- Was deze zelfstudie nuttig?
- JaNee