Podsumowanie: w tym samouczku poznasz typ danych Oracle VARCHAR2
i dowiesz się, jak używać go do definiowania kolumn łańcuchów znaków o zmiennej długości.
Wprowadzenie do typu danych Oracle VARCHAR2
Aby przechowywać łańcuchy znaków o zmiennej długości, używasz typu danych Oracle VARCHAR2
. Kolumna VARCHAR2
może przechowywać wartości z zakresu od 1 do 4000 bajtów. Oznacza to, że dla jednobajtowego zestawu znaków można przechowywać do 4000 znaków w kolumnie VARCHAR2
.
Podczas tworzenia tabeli z kolumną VARCHAR2
musisz określić maksymalną długość łańcucha znaków, albo w bajtach:
albo w znakach
Domyślnie Oracle używa BYTE
, jeśli nie określisz jawnie BYTE
lub CHAR
po max_size
. Innymi słowy, kolumna VARCHAR2(N)
może pomieścić do N
bajtów znaków.
Jeśli przechowujesz ciąg znaków, którego rozmiar przekracza maksymalny rozmiar kolumny VARCHAR2
, Oracle wystawia błąd.
Na przykład, jeśli zdefiniujesz kolumnę VARCHAR2
o maksymalnym rozmiarze wynosi 20. W jednobajtowym zestawie znaków można przechowywać do 20 znaków. Jeśli przechowujesz 21 znaków lub więcej, Oracle zwraca błąd.
Dodatkowo, jeśli przechowujesz 10 znaków w kolumnie VARCHAR2(20)
, Oracle wykorzystuje do przechowywania tylko 10 bajtów, a nie 20 bajtów. Dlatego użycie typu danych VARCHAR2
pomaga zaoszczędzić miejsca używane przez tabelę.
Podczas porównywania wartości VARCHAR2
Oracle używa semantyki porównawczej non-padded.
Oracle VARCHAR2 max length
Od czasu Oracle Database 12c można określić maksymalny rozmiar 32767 dla typu danych VARCHAR2
. Oracle używa parametru MAX_STRING_SIZE
do kontroli maksymalnego rozmiaru. Jeśli MAX_STRING_SIZE
jest STANDARD
, wówczas maksymalny rozmiar dla VARCHAR2
wynosi 4000 bajtów. W przypadku, gdy MAX_STRING_SIZE
jest EXTENDED
, limit rozmiaru dla VARCHAR2
wynosi 32767.
Aby uzyskać wartość parametru MAX_STRING_SIZE
, należy użyć następującego zapytania:
Albo użyć następującej instrukcji:
Oracle VARCHAR2 przykłady
Poniższa instrukcja tworzy nową tabelę o nazwie econtacts
do przechowywania kontaktów awaryjnych pracowników.
Tabela econtacts
ma trzy kolumny VARCHAR2
: first_name
, last_name
i phone
.
Następujące polecenie wstawia nowy wiersz do tabeli econtacts
:
Działało zgodnie z oczekiwaniami, ponieważ dane wejściowe nie przekraczają maksymalnego rozmiaru kolumny VARCHAR2
.
Jednakże poniższe polecenie nie powiodło się:
Ponieważ dane wejściowe pierwszego imienia przekraczają maksymalną długość kolumny first_name
, Oracle wypisał następujący błąd:
W tym samouczku poznałeś typ danych Oracle VARCHAR2
i dowiedziałeś się, jak używać typu danych VARCHAR2
do definiowania kolumn łańcuchów znaków o zmiennej długości w tabeli.
- Czy ten kurs był pomocny?
- TakNie
.