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

Lämna ett svar

Din e-postadress kommer inte publiceras.