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

Tartalomjegyzék:

Anonim

Mi az a PL / SQL adattípus?

Adattípus társul a konkrét tárolási formátumhoz és a tartomány korlátozásához. Az Oracle-ben minden értéket vagy állandót adattípussal rendelünk hozzá.

Alapvetően meghatározza, hogyan tárolja, kezeli és kezeli az adatokat az Oracle az adattárolás és -feldolgozás során.

A fő különbség a PL / SQL és az SQL adattípusok között az, hogy az SQL adattípus a táblázat oszlopra korlátozódik, míg a PL / SQL adattípusokat a PL / SQL blokkokban használják. Bővebben erről később az oktatóanyagban.

Az alábbiakban bemutatjuk a PL / SQL különböző adattípusainak diagramját

Ebben az oktatóanyagban megtanulja-

  • JELLEMZŐ Adattípus
  • NUMBER adattípus
  • BOOLEAN Adattípus
  • DATE adattípus
  • LOB adattípus

JELLEMZŐ Adattípus:

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

A szó szerinti értékeket mindig egyetlen idézőjelbe kell foglalni, miközben a CHARACTER adattípushoz kell rendelni őket.

Ezt a karakter adattípust a következőképpen osztályozzák:

  • CHAR adattípus (rögzített karakterlánc-méret)
  • VARCHAR2 adattípus (változó karakterláncméret)
  • VARCHAR Adattípus
  • NCHAR (natív fix karakterlánc-méret)
  • NVARCHAR2 (natív változó karakterlánc méret)
  • HOSSZÚ és HOSSZÚ NYERS
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 rögzítve van a változó deklarálásakor.
  • Az Oracle üresen kitöltötte a változót, ha a változó nem foglalja el a teljes méretet, amelyet deklaráltak, ezért az Oracle akkor is lefoglalja a memóriát a deklarált mérethez, ha a változó nem teljesen foglalja el.
  • Az adattípus méretkorlátozása 1-2000 bájt.
  • A CHAR adattípus megfelelőbb használni, ha valaha rögzített az adatméret kezelése.
grade CHAR;manager CHAR (10):= 'guru99';
Szintaxis Magyarázat:
  • Az első nyilatkozat deklarálta a CHAR adattípus változójának „grade” változóját, amelynek maximális mérete 1 bájt (alapértelmezett érték).
  • A második nyilatkozat deklarálta a CHAR adattípus „manager” változóját, amelynek maximális mérete 10, és hozzárendelte a 6 bájtos „guru99” értéket. Az Oracle ebben az esetben 10 bájt memóriát oszt ki, nem pedig 6 bájtot.
VARCHAR2 Ez az adattípus tárolja a karakterláncot, de a karakterlánc hossza nincs rögzítve.
  • Ennek az adattípusnak a méretkorlátozása 1-4000 bájt a táblázat oszlopméretnél és 1-32767 bájt a változóknál.
  • A méretet minden változóra megadjuk a változó deklarálásakor.
  • De az Oracle csak a változó meghatározása után osztja ki a memóriát, azaz az Oracle csak a karakterlánc tényleges hosszát veszi figyelembe, amelyet a változó tárol a memóriafoglaláshoz, nem pedig azt a méretet, amelyet egy változóhoz adtak a deklarációs részben.
  • A memóriahasználat optimalizálása érdekében mindig jó a CHAR adattípus helyett a VARCHAR2-et használni.
manager VARCHAR2(10) := ‘guru99';
Szintaxis Magyarázat:
  • A fenti nyilatkozat deklarálta a VARCHAR2 adattípus „manager” változóját, amelynek maximális mérete 10, és hozzárendelte a 6 bájtos „guru99” értéket. Az Oracle ebben az esetben csak 6 bájt memóriát oszt ki.
VARCHAR Ez szinonimája a VARCHAR2 adattípusnak.
  • A viselkedésbeli változások elkerülése érdekében mindig jó gyakorlat a VARCHAR2 használata a VARCHAR helyett.
manager VARCHAR(10) := ‘guru99';
Szintaxis Magyarázat:
  • A fenti nyilatkozat deklarálta a VARCHAR adattípus „manager” változóját, amelynek maximális mérete 10, és hozzárendelte a 6 bájtos „guru99” értéket. Az Oracle ebben az esetben csak 6 bájt memóriát oszt ki. (Hasonló a VARCHAR2-hez)
NCHAR Ez az adattípus megegyezik a CHAR adattípussal, de a karakterkészlet a nemzeti karakterkészletre vonatkozik.
  • Ez a karakterkészlet a munkamenethez az NLS_PARAMETERS segítségével definiálható.
  • A karakterkészlet lehet UTF16 vagy UTF8.
  • A méretkorlátozás 1-2000 bájt.
native NCHAR(10);
Szintaxis Magyarázat:
  • A fenti nyilatkozat deklarálja az NCHAR adattípus „natív” változóját, amelynek maximális mérete 10.
  • A változó hossza a karakterkészletben meghatározott bájtanként (a hosszúságok számától) függ.
NVARCHAR2 Ez az adattípus megegyezik a VARCHAR2 adattípussal, de a karakterkészlet a nemzeti karakterkészletből származik.
  • Ez a karakterkészlet a munkamenethez az NLS_PARAMETERS segítségével definiálható.
  • A karakterkészlet lehet UTF16 vagy UTF8.
  • A méretkorlátozás 1-4000 bájt.
Native var NVARCHAR2(10):='guru99';
Szintaxis Magyarázat:
  • A fenti nyilatkozat deklarálja az NVARCHAR2 adattípus „Native_var” változóját, amelynek maximális mérete 10.
HOSSZÚ és HOSSZÚ Ez az adattípus nagy szöveges vagy nyers adatok tárolására szolgál, legfeljebb 2 GB 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átumban történő tárolására.
  • A LONG RAW adattípus médiaobjektumokat, képeket stb. Fogad el, míg a LONG csak olyan adatokon működik, amelyek karakterkészlet használatával tárolhatók.
Large_text LONG;Large_raw LONG RAW;
Szintaxis Magyarázat:
  • A fenti nyilatkozat deklarálja a LONG adattípusú „Large_text” és a LONG RAW típusú „Large_raw” változót.
Megjegyzés: A HOSSZÚ adattípus használatát az Oracle nem javasolja. Ehelyett a LOB adattípust kell előnyben részesíteni.

NUMBER adattípus:

Ez az adattípus rögzített vagy lebegőpontos számokat tárol, legfeljebb 38 számjegy pontossággal. Ezt az adattípust olyan mezőkkel lehet használni, amelyek csak számadatokat tartalmaznak. A változó deklarálható pontossággal és tizedesjegyű adatokkal, vagy ezen információk nélkül. Az értékeket nem kell idézőjelek közé tenni, miközben hozzárendelik ezt az adattípust.

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

Szintaxis Magyarázat:

  • A fentiekben az első deklaráció kijelenti, hogy az „A” változó számadattípusú, 8-as pontossággal és 2-es tizedesjegyekkel.
  • A második nyilatkozat kijelenti, hogy a „B” változó számadattípusú, 8-as pontossággal és tizedesjegy nélküli.
  • A harmadik deklaráció a legáltalánosabb, kijelenti, hogy a „C” változó számadattípusú, precíziós vagy tizedesjegyű korlátozás nélkül. Legfeljebb 38 számjegyből állhat.

BOOLEAN adattípus:

Ez az adattípus tárolja a logikai értékeket. Vagy IGAZ, vagy HAMIS, és főként feltételes utasításokban használják. Az értékeket nem kell idézőjelek közé tenni, miközben hozzárendelik ezt az adattípust.

Var1 BOOLEAN;

Szintaxis Magyarázat:

  • A fentiekben a „Var1” változó BOOLEAN adattípusként van deklarálva. A kód kimenete igaz vagy hamis lesz a beállított feltétel alapján.

DATE 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 DATE adattípussal és a dátummal együtt határozunk meg, az időinformációkat tárolhat, és ha nincs megadva, akkor alapértelmezés szerint az időinformáció 12:00:00 lesz. Az értékeket idézőjelek közé kell tenni, miközben hozzárendelnek ehhez az adattípushoz.

Az Oracle szabványos bemeneti és kimeneti formátuma 'NN-HH-ÉÉ', és ez ismét NLS_PARAMETERS (NLS_DATE_FORMAT) értékre van állítva munkamenet szinten.

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

Szintaxis Magyarázat:

  • A fentiekben az „newyear” változót DATE adattípusként deklaráljuk, és hozzáadjuk a 2015. január 1- jei dátum értékét .
  • A második deklaráció a current_date változót DATE adattípusnak nyilvánítja, és az értéket az aktuális rendszerdátummal rendeli hozzá.
  • Mindkét változó tartalmazza az időinformációt.

LOB adattípus:

Ezt az adattípust főként strukturálatlan adatok - például képek, multimédia fájlok stb. - nagy blokkjainak tárolására és kezelésére használják. Az Oracle a LOB adattípus helyett a LOB-ot részesíti előnyben, 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ípussal rendelkező oszlopok száma 1-re korlátozódik, míg a táblázatnak nincs korlátozása a LOB adattípusú oszlopok számára.
  • Az adat interfész eszköz elfogadja a tábla LOB adattípusát az adatreplikáció során, de a táblázat HOSSZÚ oszlopát kihagyja. Ezeket a LONG oszlopokat manuálisan kell lemásolni.
  • A LONG oszlop mérete 2 GB, míg a LOB legfeljebb 128 TB-ot képes tárolni.
  • Az Oracle folyamatosan javítja az egyes kiadások LOB adattípusait a modern követelményeknek megfelelően, míg a LONG adattípus állandó és nem sok frissítést kap.

Tehát mindig jó a LOB adattípust használni a LONG adattípus helyett. Az alábbiakban bemutatjuk a különböző LOB adattípusokat. Legfeljebb 128 terabájtig képesek tárolni.

  1. FOLT
  2. CLOB és NCLOB
  3. BFÁJL
Adattípus Leírás Szintaxis
FOLT

Ez az adattípus bináris fájlformátumban tárolja a LOB adatokat legfeljebb 128 TB méretig. Ez nem tárolja a karakterkészlet részletein alapuló adatokat, így a strukturálatlan adatokat, például multimédiás objektumokat, képeket stb.

Binary_data BLOB;

Szintaxis Magyarázat:

  • A fentiekben a 'Binary_data' változót BLOB-ként deklaráljuk.
CLOB és NCLOB

A CLOB adattípus a LOB adatokat a karakterkészletbe tárolja, míg az NCLOB az adatokat a natív karakterkészletbe. Mivel ezek az adattípusok karakterkészlet-alapú tárolást használnak, ezek nem tárolhatják azokat az adatokat, mint például a multimédia, képek stb., Amelyeket nem lehet karakterláncba tenni. Ezen adattípusok maximális mérete 128 TB.

Charac_data CLOB;

Szintaxis Magyarázat:

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

Összegzés

Kitértünk a PL / SQL-ben elérhető különféle egyszerű adattípusokra, azok szintaxisával együtt. További témákban megismerjük a komplex adattípusokat.