Oracle PL/SQL adattípusok: logikai érték, szám, dátum [példa]

Mi az a PL/SQL adattípus?

Adattípusok PL/SQL-ben az adatok tárolásának, kezelésének és kezelésének meghatározására szolgál Oracle az adatok tárolása és feldolgozása során. Az adattípusok az adott tárolási formátumhoz és tartománykorlátokhoz vannak társítva. Ban ben Oracle, minden értékhez vagy állandóhoz adattípus tartozik.

A fő különbség a PL/SQL és SQL az adattípusok, az SQL adattípusok tábla oszlopra korlátozódnak, míg a PL/SQL adattípusok használatosak PL/SQL blokkok. Erről bővebben később az oktatóanyagban.

Az alábbiakban a különböző diagramok láthatók Oracle PL/SQL adattípusok:

PL/SQL adattípusok
Különböző adattípusok a PL/SQL-ben

PL/SQL KARAKTER Adattípus

Ez az adattípus alapvetően karakterlánc-formátumban tárolja az alfanumerikus karaktereket.

A literális értékeket mindig idézőjelbe kell tenni, miközben CHARACTER adattípushoz rendeli őket.

Ez a karakter adattípus a következőképpen osztályozható:

  • CHAR Adattípus (rögzített karakterláncméret)
  • VARCHAR2 Adattípus (változó karakterláncméret)
  • VARCHAR Adattípus
  • NCHAR (natív rögzített karakterláncméret)
  • NVARCHAR2 (natív változó karakterláncméret)
  • HOSSZÚ és HOSSZÚ RAW
Adattípus Leírás Szintaxis
CHAR Ez az adattípus tárolja a karakterlánc értékét, és a karakterlánc mérete a deklaráció időpontjában rögzített változó.

  • Oracle üresen lenne kitöltve a változó, ha a változó nem foglalja el a számára deklarált teljes méretet, ezért Oracle akkor is lefoglalja a memóriát a deklarált mérethez, ha a változó nem foglalta el teljesen.
  • Ennél az adattípusnál a méretkorlátozás 1–2000 bájt.
  • A CHAR adattípus megfelelőbb arra az esetre, ha a kezelt adatok mérete rögzített.
grade CHAR;
manager CHAR (10):= 'guru99';

Szintaxis magyarázata:

  • Az első deklarációs utasítás a CHAR adattípus 'grade' változóját deklarálta, legfeljebb 1 bájt mérettel (alapértelmezett érték).
  • A második deklarációs utasítás a CHAR adattípusú 'manager' változót 10-es maximális mérettel deklarálta, és a 'guru99' értéket rendelte hozzá, ami 6 bájt. Oracle ebben az esetben 10 bájt helyett 6 bájtot foglal le.
VARCHAR2 Ez az adattípus tárolja a karakterláncot, de a karakterlánc hossza nincs rögzítve.

  • Ennél az adattípusnál a méretkorlátozás 1-4000 bájt a táblázat oszlopainak mérete és 1-32767 bájt a változók esetében.
  • A méret minden változóhoz a változó deklarációjakor van meghatározva.
  • De Oracle csak a változó meghatározása után foglal le memóriát, pl. Oracle csak a változóban tárolt karakterlánc tényleges hosszát veszi figyelembe a memóriafoglaláshoz, nem pedig a deklarációs részben egy változóhoz megadott méretet.
  • A memóriahasználat optimalizálása érdekében mindig jó a VARCHAR2 használata a CHAR adattípus helyett.
manager VARCHAR2(10) := ‘guru99';

Szintaxis magyarázata:

  • A fenti deklarációs utasítás a VARCHAR2 adattípus 'manager' változóját 10-es maximális mérettel deklarálta, és a 'guru99' értéket rendelte hozzá, ami 6 bájt. Oracle ebben az esetben csak 6 bájt memóriát foglal le.
VARCHAR Ez a VARCHAR2 adattípus szinonimája.

  • Mindig jó gyakorlat a VARCHAR2 használata a VARCHAR helyett a viselkedésbeli változások elkerülése érdekében.
manager VARCHAR(10) := ‘guru99';

Szintaxis magyarázata:

  • A fenti deklarációs utasítás a VARCHAR adattípus 'manager' változóját 10-es maximális mérettel deklarálta, és a 'guru99' értéket rendelte hozzá, ami 6 bájt. Oracle ebben az esetben csak 6 bájt memóriát foglal le. (Hasonló a VARCHAR2-höz)
NCHAR Ez az adattípus megegyezik a CHAR adattípussal, de a nemzeti karakterkészlet karakterkészlete lesz.

  • Ez a karakterkészlet a munkamenethez az NLS_PARAMETERS használatával definiálható.
  • A karakterkészlet UTF16 vagy UTF8 lehet.
  • A méretkorlátozás 1-2000 bájt.
native NCHAR(10);

Szintaxis magyarázata:

  • A fenti deklarációs utasítás az NCHAR adattípus „natív” változóját deklarálja, legfeljebb 10 mérettel.
  • Ennek a változónak a hossza a karakterkészletben meghatározott bájtonkénti (hosszúságok számától) függ.
NVARCHAR2 Ez az adattípus megegyezik a VARCHAR2 adattípussal, de a karakterkészlet nemzeti karakterkészletből áll.

  • Ez a karakterkészlet a munkamenethez az NLS_PARAMETERS használatával definiálható.
  • A karakterkészlet UTF16 vagy UTF8 lehet.
  • A méretkorlátozás 1-4000 bájt.
Native var NVARCHAR2(10):='guru99';

Szintaxis magyarázata:

  • A fenti deklarációs utasítás az NVARCHAR2 adattípus 'Native_var' változóját deklarálja, legfeljebb 10 mérettel.
HOSSZÚ és HOSSZÚ Ez az adattípus nagy szöveg vagy nyers adatok tárolására szolgál, legfeljebb 2 GB-os méretig.

  • Ezeket főleg az adatszótárban használják.
  • A LONG adattípus a karakterkészlet adatok tárolására szolgál, míg a LONG RAW az adatok bináris formátumú tárolására szolgál.
  • A LONG RAW adattípus médiaobjektumokat, képeket stb. fogad el, míg a LONG csak olyan adatokon működik, amelyek karakterkészlettel tárolhatók.
Large_text LONG;
Large_raw LONG RAW;

Szintaxis magyarázata:

  • A fenti deklarációs utasítás a LONG adattípusú 'Large_text' és LONG RAW adattípusú 'Large_raw' változót deklarálja.

Jegyzet: A LONG adattípus használatát nem javasolja Oracle. Ehelyett a LOB adattípust kell előnyben részesíteni.

PL/SQL SZÁM Adattípus

Ez az adattípus fix vagy lebegőpontos számokat tárol 38 számjegy pontosságig. Ezt az adattípust olyan mezők kezelésére használják, amelyek csak számadatokat tartalmaznak. A változó deklarálható precíziós és decimális számjegyekkel, vagy ezen információk nélkül is. Az értékeket nem kell idézőjelek közé tenni az adattípus hozzárendelése során.

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

Szintaxis magyarázata:

  • A fentiekben az első deklaráció deklarálja, hogy az 'A' változó számadattípusú, teljes pontossággal 8, decimális számjegyekkel pedig 2.
  • A második deklaráció deklarálja, hogy a „B” változó számadattípusú, teljes pontossággal 8, és nem tartalmaz tizedesjegyeket.
  • A harmadik deklaráció a legáltalánosabb, a 'C' változó számadattípusú, pontosság vagy tizedesjegyek korlátozása nélkül. Maximum 38 számjegyből állhat.

PL/SQL BOOLEAN adattípus

Ez az adattípus tárolja a logikai értékeket. Oracle A logikai adattípus IGAZ vagy HAMIS, és főként feltételes utasításokban használatos. Az értékeket nem kell idézőjelek közé tenni az adattípus hozzárendelése során.

Var1 BOOLEAN;

Szintaxis magyarázata:

  • A fentiekben a 'Var1' változó BOOLEAN adattípusként van deklarálva. A kód kimenete a feltételkészlettől függően igaz vagy hamis lesz.

PL/SQL DÁTUM Adattípus

Ez az adattípus dátumformátumban, dátumként, hónapként és évként tárolja az értékeket. Amikor egy változót a dátummal együtt DATE adattípussal definiálnak, az időinformációkat tartalmazhat, és alapértelmezés szerint az időinformáció 12:00:00, ha nincs megadva. Az értékeket idézőjelbe kell zárni, amikor ehhez az adattípushoz rendel hozzá.

A szabvány Oracle A bemeneti és kimeneti időformátum 'DD-MON-YY', és a munkamenet szintjén ismét NLS_PARAMETERS (NLS_DATE_FORMAT) van beállítva.

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

Szintaxis magyarázata:

  • A fentiekben a 'newyear' változó DÁTUM adattípusként van deklarálva, és január 1-i értékkel van rendelve.st, 2015-ös dátum.
  • A második deklaráció a current_date változót DÁTUM adattípusként deklarálja, és az értéket az aktuális rendszerdátummal rendeli hozzá.
  • Mindkét változó tartalmazza az időinformációt.

PL/SQL LOB adattípus

Ezt az adattípust főként strukturálatlan adattömbök, például képek, multimédiás fájlok stb. tárolására és kezelésére használják. Oracle a LOB-ot részesíti előnyben a LONG adattípus helyett, mivel rugalmasabb, mint a LONG adattípus. Az alábbiakban bemutatjuk a LOB néhány fő előnyét a LONG adattípussal szemben.

  • A LONG adattípusú táblákban az oszlopok száma 1-re van korlátozva, míg a tábláknak nincs korlátozása a LOB adattípusú oszlopok számára.
  • Az adatinterfész eszköz elfogadja a tábla LOB adattípusát az adatreplikáció során, de kihagyja a tábla LONG oszlopát. Ezeket a LONG oszlopokat manuálisan kell replikálni.
  • A LONG oszlop mérete 2 GB, míg a LOB 128 TB-ig képes tárolni.
  • Oracle folyamatosan fejleszti a LOB adattípust minden kiadásában a modern igényeknek megfelelően, míg a LONG adattípus állandó és nem kap sok frissítést.

Ezért mindig jó a LOB adattípus használata a LONG adattípus helyett. Az alábbiakban a különböző LOB adattípusok láthatók. Legfeljebb 128 terabájtot tudnak tárolni.

  1. FOLT
  2. CLOB és NCLOB
  3. BFILE
Adattípus Leírás Szintaxis
FOLT Ez az adattípus a LOB adatokat bináris fájlformátumban tárolja, legfeljebb 128 TB méretig. Ez nem tárol adatokat a karakterkészlet részletei alapján, így képes tárolni a strukturálatlan adatokat, például multimédiás objektumokat, képeket stb.
Binary_data BLOB;

Szintaxis magyarázata:

  • A fentiekben a 'Binary_data' változó BLOB-ként van deklarálva.
CLOB és NCLOB A CLOB adattípus a LOB adatokat a karakterkészletben tárolja, míg az NCLOB a natív karakterkészletben tárolja az adatokat. Mivel ezek az adattípusok karakterkészlet alapú tárolást használnak, nem tárolhatnak olyan adatokat, mint például a multimédia, képek stb., amelyeket nem lehet karaktersorozatba helyezni. Ezen adattípusok maximális mérete 128 TB.
Charac_data CLOB;

Szintaxis magyarázata:

  • A fentiekben a 'Charac_data' változó CLOB adattípusként van deklarálva.
BFILE
  • A BFILE azok az adattípusok, amelyek a strukturálatlan bináris formátumú adatokat az adatbázison kívül operációs rendszer fájlként tárolják.
  • A BFILE mérete korlátozott operációs rendszerre vonatkozik, és csak olvasható fájlok, és nem módosíthatók.

Összegzésként

Áttekintettük a különböző egyszerű adattípusokat, amelyek elérhetők PL / SQL szintaxisukkal együtt. Az összetett adattípusokról további témakörökben fogunk tanulni.