Sammanfattning: I den här handledningen lär du dig om Oracle VARCHAR2
-datatypen och hur du använder den för att definiera kolumner för teckensträngar med variabel längd.
Inledning till Oracle VARCHAR2-datatypen
För att lagra teckensträngar med variabel längd använder du Oracle VARCHAR2
-datatypen. En VARCHAR2
-kolumn kan lagra ett värde som sträcker sig från 1 till 4000 bytes. Det innebär att för en teckenuppsättning med en byte kan du lagra upp till 4000 tecken i en VARCHAR2
-kolumn.
När du skapar en tabell med en VARCHAR2
-kolumn måste du ange den maximala stränglängden, antingen i byte:
eller i tecken
Som standard använder Oracle BYTE
om du inte uttryckligen anger BYTE
eller CHAR
efter max_size
. Med andra ord kan en VARCHAR2(N)
-kolumn innehålla upp till N
bytes tecken.
Om du lagrar en teckensträng vars storlek överstiger den maximala storleken på VARCHAR2
-kolumnen ger Oracle ett fel.
Till exempel, om du definierar en VARCHAR2
-kolumn med en maximal storlek är 20. I en teckenuppsättning med en enda byte kan du lagra upp till 20 tecken. Om du lagrar 21 tecken eller mer returnerar Oracle ett fel.
Och om du lagrar 10 tecken i en VARCHAR2(20)
-kolumn använder Oracle endast 10 byte för lagring, inte 20 byte. Därför kan du med hjälp av VARCHAR2
-datatypen spara utrymme som används av tabellen.
När du jämför VARCHAR2
-värden använder Oracle den icke-paddade jämförelsesemantiken.
Oracle VARCHAR2 max length
Sedan Oracle Database 12c kan du ange den maximala storleken på 32767 för VARCHAR2
-datatypen. Oracle använder parametern MAX_STRING_SIZE
för att kontrollera den maximala storleken. Om MAX_STRING_SIZE
är STANDARD
är den maximala storleken för VARCHAR2
4000 bytes. Om MAX_STRING_SIZE
är EXTENDED
är storleksgränsen för VARCHAR2
32767.
För att få fram värdet på parametern MAX_STRING_SIZE
använder du följande fråga:
Och använd följande uttalande:
Oracle VARCHAR2 examples
Följande uttalande skapar en ny tabell som heter econtacts
för att lagra anställdas kontaktpersoner i nödsituationer.
Tabellen econtacts
har tre kolumner VARCHAR2
: first_name
, last_name
och phone
.
Följande anvisning infogar en ny rad i tabellen econtacts
:
Det fungerade som förväntat eftersom indata inte överskrider den maximala storleken för kolumnen VARCHAR2
.
Det går dock inte att infoga följande uttalande:
Eftersom det inmatade förnamnet överskrider den maximala längden för kolumnen first_name
utfärdade Oracle följande fel:
I den här handledningen har du lärt dig om Oracle VARCHAR2
och hur du kan använda datatypen VARCHAR2
för att definiera kolumner för teckensträngar med variabel längd i en tabell.
- Var den här handledningen till hjälp?
- JaNej