Oracle Datové typy PL/SQL: Boolean, číslo, datum [příklad]

Co jsou datové typy PL/SQL?

Typy dat v PL/SQL se používají k definování toho, jak budou data uložena, zpracována a zpracována Oracle během ukládání a zpracování dat. Datové typy jsou spojeny s konkrétním formátem úložiště a omezeními rozsahu. v Oracle, každé hodnotě nebo konstantě je přiřazen datový typ.

Hlavní rozdíl mezi PL/SQL a SQL datové typy jsou, datový typ SQL je omezen na sloupec tabulky, zatímco datové typy PL/SQL se používají v PL/SQL bloky. Více o tom později v tutoriálu.

Následuje schéma různých Oracle PL/SQL datové typy:

Datové typy PL/SQL
Různé datové typy v PL/SQL

PL/SQL CHARAKTER Typ dat

Tento datový typ v zásadě ukládá alfanumerické znaky ve formátu řetězce.

Doslovné hodnoty by měly být při přiřazování k datovému typu CHARACTER vždy uzavřeny v jednoduchých uvozovkách.

Tento datový typ znaku je dále klasifikován takto:

  • CHAR Typ dat (pevná velikost řetězce)
  • VARCHAR2 Typ dat (proměnná velikost řetězce)
  • VARCHAR Typ dat
  • NCHAR (nativní pevná velikost řetězce)
  • NVARCHAR2 (velikost řetězce nativní proměnné)
  • DLOUHÉ a DLOUHÉ RAW
Datový typ Description Syntax
CHAR Tento datový typ ukládá hodnotu řetězce a velikost řetězce je pevná v době deklarace proměnlivý.

  • Oracle by byla proměnná doplněna prázdnými místy, pokud by proměnná nezabírala celou velikost, která pro ni byla deklarována, proto Oracle alokuje paměť pro deklarovanou velikost, i když ji proměnná plně nezabírá.
  • Omezení velikosti pro tento typ dat je 1–2000 bajtů.
  • Datový typ CHAR je vhodnější použít tam, kde se bude manipulovat s velikostí dat.
grade CHAR;
manager CHAR (10):= 'guru99';

Vysvětlení syntaxe:

  • První deklarační příkaz deklaroval proměnnou 'grade' datového typu CHAR s maximální velikostí 1 bajt (výchozí hodnota).
  • Druhý deklarační příkaz deklaroval proměnnou 'manager' datového typu CHAR o maximální velikosti 10 a přiřadil jí hodnotu 'guru99', která má 6 bajtů. Oracle v tomto případě alokuje paměť 10 bajtů místo 6 bajtů.
VARCHAR2 Tento datový typ ukládá řetězec, ale délka řetězce není pevná.

  • Omezení velikosti pro tento datový typ je 1-4000 bajtů pro velikost sloupce tabulky a 1-32767 bajtů pro proměnné.
  • Velikost je definována pro každou proměnnou v době deklarace proměnné.
  • Ale Oracle přidělí paměť až po definování proměnné, tzn. Oracle bude uvažovat pouze skutečnou délku řetězce, který je uložen v proměnné pro alokaci paměti, spíše než velikost, která byla dána pro proměnnou v části deklarace.
  • Pro optimalizaci využití paměti je vždy dobré místo datového typu CHAR použít VARCHAR2.
manager VARCHAR2(10) := ‘guru99';

Vysvětlení syntaxe:

  • Výše uvedený deklarační příkaz deklaroval proměnnou 'manager' datového typu VARCHAR2 o maximální velikosti 10 a přiřadil jí hodnotu 'guru99', která má 6 bajtů. Oracle v tomto případě alokuje paměť pouze 6 bajtů.
VARCHAR To je synonymem pro datový typ VARCHAR2.

  • Vždy je dobrým zvykem používat VARCHAR2 místo VARCHAR, abyste se vyhnuli změnám chování.
manager VARCHAR(10) := ‘guru99';

Vysvětlení syntaxe:

  • Výše uvedený deklarační příkaz deklaroval proměnnou 'manager' datového typu VARCHAR o maximální velikosti 10 a přiřadil jí hodnotu 'guru99', která má 6 bajtů. Oracle v tomto případě alokuje paměť pouze 6 bajtů. (Podobné jako VARCHAR2)
NCHAR Tento datový typ je stejný jako datový typ CHAR, ale znaková sada bude mít národní znakovou sadu.

  • Tuto znakovou sadu lze pro relaci definovat pomocí NLS_PARAMETERS.
  • Znaková sada může být UTF16 nebo UTF8.
  • Omezení velikosti je 1-2000 bajtů.
native NCHAR(10);

Vysvětlení syntaxe:

  • Výše uvedený deklarační příkaz deklaruje proměnnou 'nativní' datového typu NCHAR s maximální velikostí 10.
  • Délka této proměnné závisí na (počtu délek) na bajt, jak je definováno ve znakové sadě.
NVARCHAR2 Tento datový typ je stejný jako datový typ VARCHAR2, ale znaková sada bude národní znakové sady.

  • Tuto znakovou sadu lze pro relaci definovat pomocí NLS_PARAMETERS.
  • Znaková sada může být UTF16 nebo UTF8.
  • Omezení velikosti je 1-4000 bajtů.
Native var NVARCHAR2(10):='guru99';

Vysvětlení syntaxe:

  • Výše uvedený deklarační příkaz deklaruje proměnnou 'Native_var' datového typu NVARCHAR2 s maximální velikostí 10.
DLOUHÉ a DLOUHÉ Tento typ dat se používá k ukládání velkého textu nebo nezpracovaných dat až do maximální velikosti 2 GB.

  • Ty se používají především v datovém slovníku.
  • Datový typ LONG se používá k ukládání dat znakové sady, zatímco LONG RAW se používá k ukládání dat v binárním formátu.
  • Datový typ LONG RAW přijímá mediální objekty, obrázky atd., zatímco LONG pracuje pouze s daty, která lze uložit pomocí znakové sady.
Large_text LONG;
Large_raw LONG RAW;

Vysvětlení syntaxe:

  • Výše uvedený deklarační příkaz deklaruje proměnnou 'Large_text' datového typu LONG a 'Large_raw' datového typu LONG RAW.

Poznámka: Použití datového typu LONG se nedoporučuje Oracle. Místo toho by měl být preferován datový typ LOB.

PL/SQL ČÍSLO Typ dat

Tento datový typ ukládá čísla s pevnou nebo pohyblivou řádovou čárkou s přesností až 38 číslic. Tento datový typ se používá pro práci s poli, která budou obsahovat pouze číselná data. Proměnná může být deklarována buď s přesností a desetinnými číslicemi, nebo bez této informace. Při přiřazování pro tento datový typ se hodnoty nemusí uzavírat do uvozovek.

A NUMBER(8,2);
B NUMBER(8);
C NUMBER;

Vysvětlení syntaxe:

  • Ve výše uvedeném prvním prohlášení deklaruje, že proměnná „A“ je datového typu číslo s celkovou přesností 8 a desetinnými číslicemi 2.
  • Druhá deklarace deklaruje, že proměnná 'B' je číselného datového typu s celkovou přesností 8 a bez desetinných číslic.
  • Třetí deklarace je nejobecnější, deklaruje, že proměnná 'C' je číselného datového typu bez omezení přesnosti nebo desetinných míst. Může mít maximálně 38 číslic.

Typ dat PL/SQL BOOLEAN

Tento datový typ ukládá logické hodnoty. Oracle Booleovský datový typ představuje buď TRUE nebo FALSE a používá se hlavně v podmíněných příkazech. Při přiřazování pro tento datový typ se hodnoty nemusí uzavírat do uvozovek.

Var1 BOOLEAN;

Vysvětlení syntaxe:

  • Ve výše uvedeném je proměnná 'Var1' deklarována jako datový typ BOOLEAN. Výstup kódu bude buď true nebo false na základě nastavené podmínky.

PL/SQL DATE Typ dat

Tento datový typ ukládá hodnoty ve formátu data, jako datum, měsíc a rok. Kdykoli je proměnná definována s datovým typem DATE spolu s datem, může obsahovat časové informace a ve výchozím nastavení je časová informace nastavena na 12:00:00, pokud není specifikována. Hodnoty musí být při přiřazování pro tento datový typ uzavřeny do uvozovek.

Standardní Oracle časový formát pro vstup a výstup je 'DD-MON-YY' a je opět nastaven na NLS_PARAMETERS (NLS_DATE_FORMAT) na úrovni relace.

newyear DATE:='01-JAN-2015';
current_date DATE:=SYSDATE;

Vysvětlení syntaxe:

  • Ve výše uvedeném je proměnná 'newyear' deklarována jako datový typ DATE a je jí přiřazena hodnota 1. lednast, datum 2015.
  • Druhá deklarace deklaruje proměnnou aktuální_datum jako datový typ DATE a přiřadí hodnotu aktuálnímu systémovému datu.
  • Obě tyto proměnné obsahují časovou informaci.

Datový typ PL/SQL LOB

Tento typ dat se používá hlavně k ukládání a manipulaci s velkými bloky nestrukturovaných dat, jako jsou obrázky, multimediální soubory atd. Oracle preferuje LOB místo datového typu LONG, protože je flexibilnější než datový typ LONG. Níže je uvedeno několik hlavních výhod LOB oproti datovému typu LONG.

  • Počet sloupců v tabulce s datovým typem LONG je omezen na 1, zatímco tabulka nemá žádné omezení na počet sloupců s datovým typem LOB.
  • Nástroj datového rozhraní přijímá datový typ tabulky LOB během replikace dat, ale vynechává sloupec LONG tabulky. Tyto LONG sloupce je třeba replikovat ručně.
  • Velikost sloupce LONG je 2 GB, zatímco LOB může uložit až 128 TB.
  • Oracle neustále zlepšuje datový typ LOB v každém ze svých vydání podle moderních požadavků, zatímco datový typ LONG je konstantní a nedostává mnoho aktualizací.

Vždy je tedy dobré místo datového typu LONG použít datový typ LOB. Následují různé typy dat LOB. Mohou uložit až velikost 128 terabajtů.

  1. KAPKA
  2. CLOB a NCLOB
  3. BFILE
Datový typ Description Syntax
KAPKA Tento datový typ ukládá data LOB v binárním formátu souboru až do maximální velikosti 128 TB. To neukládá data na základě podrobností o znakové sadě, takže může ukládat nestrukturovaná data, jako jsou multimediální objekty, obrázky atd.
Binary_data BLOB;

Vysvětlení syntaxe:

  • Ve výše uvedeném je proměnná 'Binary_data' deklarována jako BLOB.
CLOB a NCLOB Datový typ CLOB ukládá data LOB do znakové sady, zatímco NCLOB ukládá data do nativní znakové sady. Protože tyto datové typy používají úložiště založené na znakových sadách, nemohou ukládat data, jako jsou multimédia, obrázky atd., která nelze vložit do znakového řetězce. Maximální velikost těchto datových typů je 128 TB.
Charac_data CLOB;

Vysvětlení syntaxe:

  • Ve výše uvedeném je proměnná 'Charac_data' deklarována jako datový typ CLOB.
BFILE
  • BFILE jsou datové typy, které ukládaly data nestrukturovaného binárního formátu mimo databázi jako soubor operačního systému.
  • Velikost BFILE je pro omezený operační systém a jsou to soubory pouze pro čtení a nelze je upravovat.

Shrnutí

Pokryli jsme různé jednoduché datové typy, které jsou k dispozici v PL / SQL spolu s jejich syntaxí. O komplexních datových typech se seznámíme v dalších tématech.