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

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.