Shrnutí: v tomto výukovém kurzu se seznámíte s datovým typem Oracle VARCHAR2 a jeho použitím pro definici sloupců se znakovými řetězci proměnné délky.

Úvod do datového typu Oracle VARCHAR2

Pro ukládání znakových řetězců proměnné délky se používá datový typ Oracle VARCHAR2. Sloupec VARCHAR2 může ukládat hodnoty v rozsahu od 1 do 4000 bajtů. To znamená, že pro jednobajtovou znakovou sadu můžete ve sloupci VARCHAR2 uložit až 4000 znaků.

Při vytváření tabulky se sloupcem VARCHAR2 musíte zadat maximální délku řetězce buď v bajtech:

nebo ve znacích

Při výchozím nastavení používá Oracle BYTE, pokud za max_size výslovně neuvedete BYTE nebo CHAR. Jinými slovy, sloupec VARCHAR2(N) může obsahovat až N bajtů znaků.

Pokud uložíte řetězec znaků, jehož velikost přesahuje maximální velikost sloupce VARCHAR2, Oracle vydá chybu.

Například pokud definujete sloupec VARCHAR2 s maximální velikostí je 20. To znamená, že sloupec VARCHAR2 může obsahovat až N bajtů znaků. V jednobajtové znakové sadě můžete uložit maximálně 20 znaků. Pokud uložíte 21 nebo více znaků, Oracle vrátí chybu.

Pokud navíc do sloupce VARCHAR2(20) uložíte 10 znaků, Oracle použije pro uložení pouze 10 bajtů, nikoli 20 bajtů. Použití datového typu VARCHAR2 vám proto pomůže ušetřit místa používaná tabulkou.

Při porovnávání hodnot VARCHAR2 používá společnost Oracle sémantiku porovnávání bez doplňování.

Oracle VARCHAR2 max length

Od databáze Oracle Database 12c můžete pro datový typ VARCHAR2 určit maximální velikost 32767. Společnost Oracle používá pro řízení maximální velikosti parametr MAX_STRING_SIZE. Pokud je parametr MAX_STRING_SIZE STANDARD, pak je maximální velikost pro VARCHAR2 4000 bajtů. V případě, že parametr MAX_STRING_SIZE je EXTENDED, je maximální velikost pro VARCHAR2 32767.

Pro zjištění hodnoty parametru MAX_STRING_SIZE použijte následující dotaz:

Nebo použijte následující příkaz:

Oracle VARCHAR2 příklady

Následující příkaz vytvoří novou tabulku s názvem econtacts pro uložení nouzových kontaktů zaměstnanců.

Tabulka econtacts má tři sloupce VARCHAR2: first_name, last_name a phone.

Následující příkaz vloží do tabulky econtacts nový řádek:

Fungovalo to podle očekávání, protože vstupní data nepřesahují maximální velikost sloupce VARCHAR2.

Následující příkaz se však vložit nepodařilo:

Protože vstupní křestní jméno přesahuje maximální délku sloupce first_name, společnost Oracle vydala následující chybu:

V tomto kurzu jste se seznámili s datovým typem Oracle VARCHAR2 a s tím, jak datový typ VARCHAR2 použít k definování sloupců znakových řetězců proměnné délky v tabulce.

  • Byl tento výukový kurz užitečný?
  • AnoNe

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.