Datové typy Oracle PL / SQL: Boolean, Number, Date (příklad)

Obsah:

Anonim

Co jsou datové typy PL / SQL?

Datový typ je spojen s konkrétním omezením formátu úložiště a rozsahu. V Oracle je každé hodnotě nebo konstantě přiřazen datový typ.

V zásadě definuje, jak jsou data během ukládání a zpracování dat ukládána, zpracovávána a zacházena společností Oracle.

Hlavní rozdíl mezi datovými typy PL / SQL a SQL je, datový typ SQL je omezen na sloupec tabulky, zatímco datové typy PL / SQL se používají v blocích PL / SQL. Více o tom dále v tutoriálu.

Následuje diagram různých datových typů v PL / SQL

V tomto výukovém programu se naučíte

  • CHARACTER datový typ
  • ČÍSLO datového typu
  • BOOLEAN datový typ
  • DATUM datový typ
  • Datový typ LOB

CHARACTER datový typ:

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

Doslovné hodnoty by měly být vždy přiřazeny do jednoduchých uvozovek, zatímco je přiřazujete datovému typu CHARACTER.

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

  • CHAR Datový typ (pevná velikost řetězce)
  • VARCHAR2 Datový typ (proměnná velikost řetězce)
  • VARCHAR Datový typ
  • NCHAR (nativní pevná velikost řetězce)
  • NVARCHAR2 (velikost nativní proměnné řetězce)
  • DLOUHÉ a DLOUHÉ SUROVÉ
Datový typ Popis Syntax
CHAR Tento datový typ ukládá hodnotu řetězce a velikost řetězce je pevná v době deklarování proměnné.
  • Pokud by proměnná neobsáhla celou velikost, která byla pro ni deklarována, byla by Oracle proměnnou prázdná, proto Oracle přidělí paměť pro deklarovanou velikost, i když ji proměnná nezabrala úplně.
  • Omezení velikosti pro tento datový typ je 1 000 000 bajtů.
  • Datový typ CHAR je vhodnější použít všude tam, kde bude pevná velikost dat zpracována.
grade CHAR;manager CHAR (10):= 'guru99';
Vysvětlení syntaxe:
  • První deklarační prohlášení deklarovalo 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 s maximální velikostí 10 a přidělil hodnotu „guru99“, která má 6 bajtů. Oracle v tomto případě přidělí 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ž poté, co je proměnná definována, tj. Oracle bude brát v úvahu 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 proměnné v deklarační části.
  • K optimalizaci využití paměti je vždy dobré použít VARCHAR2 místo datového typu CHAR.
manager VARCHAR2(10) := ‘guru99';
Vysvětlení syntaxe:
  • Výše uvedený deklarační příkaz deklaroval proměnnou 'manager' datového typu VARCHAR2 s maximální velikostí 10 a přidělil hodnotu 'guru99', která má 6 bajtů. Oracle v tomto případě přidělí paměť pouze 6 bytů.
VARCHAR Toto je synonymum 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 s maximální velikostí 10 a přidělil hodnotu „guru99“, která má 6 bajtů. Oracle v tomto případě přidělí paměť pouze 6 bytů. (Podobně jako VARCHAR2)
NCHAR Tento datový typ je stejný jako datový typ CHAR, ale znaková sada bude národní znakové sady.
  • Tuto znakovou sadu lze pro relaci definovat pomocí NLS_PARAMETERS.
  • Znaková sada může být buď UTF16 nebo UTF8.
  • Omezení velikosti je 1 000 000 bajtů.
native NCHAR(10);
Vysvětlení syntaxe:
  • Výše uvedený deklarační příkaz deklaruje proměnnou 'native' 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 buď UTF16 nebo UTF8.
  • Omezení velikosti je 1–4 000 bajtů.
Native var NVARCHAR2(10):='guru99';
Vysvětlení syntaxe:
  • Výše uvedené prohlášení deklaruje proměnnou 'Native_var' datového typu NVARCHAR2 s maximální velikostí 10.
DLOUHÉ a DLOUHÉ Tento datový typ se používá k ukládání velkých textových nebo nezpracovaných dat až do maximální velikosti 2 GB.
  • Používají se hlavně 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 funguje pouze na datech, která lze uložit pomocí znakové sady.
Large_text LONG;Large_raw LONG RAW;
Vysvětlení syntaxe:
  • Výše uvedené prohlášení deklaruje proměnnou 'Large_text' datového typu LONG a 'Large_raw' datového typu LONG RAW.
Poznámka: Používání datového typu LONG není společností Oracle doporučeno. Místo toho by měl být upřednostňován datový typ LOB.

ČÍSLO datový typ:

Tento datový typ ukládá čísla s pevnou nebo plovoucí desetinnou čá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ěnnou lze deklarovat buď s přesností a desítkovými číslicemi, nebo bez této informace. Při přiřazování pro tento datový typ nemusí být hodnoty uvozeny v uvozovkách.

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

Vysvětlení syntaxe:

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

BOOLEAN datový typ:

Tento datový typ ukládá logické hodnoty. 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 nemusí být hodnoty uvozeny v uvozovkách.

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ď pravdivý, nebo nepravdivý na základě nastavené podmínky.

DATUM datový typ:

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 informace o čase a ve výchozím nastavení je informace o čase nastavena na 12:00:00, pokud není zadána. Při přiřazování pro tento datový typ je třeba uvést uvozovky v uvozovkách.

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

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. ledna 2015.
  • Druhá deklarace deklaruje proměnnou current_date jako datový typ DATE a přiřadila hodnotu aktuálnímu systémovému datu.
  • Obě tyto proměnné obsahují informace o čase.

Typ dat LOB:

Tento datový typ 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. Společnost Oracle upřednostňuje 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 LONG datovému typu.

  • Počet sloupců v tabulce s datovým typem LONG je omezen na 1, zatímco tabulka nemá žádné omezení počtu sloupců s datovým typem LOB.
  • Nástroj datového rozhraní přijímá během replikace dat LOB datový typ tabulky, ale vynechá LONG sloupec tabulky. Tyto DLOUHÉ 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 zdokonaluje datový typ LOB v každém svém vydání podle moderních požadavků, zatímco datový typ LONG je konstantní a nedostává mnoho aktualizací.

Takže je vždy dobré použít datový typ LOB místo datového typu LONG. Následují různé typy dat LOB. Mohou ukládat až do velikosti 128 terabajtů.

  1. KAPKA
  2. CLOB a NCLOB
  3. BFILE
Datový typ Popis Syntax
KAPKA

Tento datový typ ukládá data LOB v binárním formátu až do maximální velikosti 128 TB. Toto neukládá data na základě podrobností znakové sady, 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 řetězce znaků. 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 nestrukturovaná data v binárním formátu mimo databázi jako soubor operačního systému.
  • Velikost souboru BFILE je pro omezený operační systém a jsou to soubory jen pro čtení a nelze je měnit.

souhrn

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 dozvíme v dalších tématech.