Oracle PL/SQL tipovi podataka: Booleov, broj, datum [primjer]

Što su PL/SQL tipovi podataka?

Vrste podataka u PL/SQL koriste se za definiranje kako će podaci biti pohranjeni, kako će se njima rukovati i kako će ih tretirati Oracle tijekom pohrane i obrade podataka. Tipovi podataka povezani su s određenim formatom pohrane i ograničenjima raspona. U Oracle, svakoj vrijednosti ili konstanti dodijeljen je tip podataka.

Glavna razlika između PL/SQL i SQL tipovi podataka su, SQL tipovi podataka ograničeni su na stupac tablice, dok se PL/SQL tipovi podataka koriste u PL/SQL blokovi. Više o tome kasnije u vodiču.

Slijedi dijagram različitih Oracle PL/SQL tipovi podataka:

PL/SQL tipovi podataka
Različiti tipovi podataka u PL/SQL

PL/SQL CHARACTER tip podataka

Ova vrsta podataka u osnovi pohranjuje alfanumeričke znakove u formatu niza.

Literalne vrijednosti uvijek bi trebale biti u jednostrukim navodnicima dok se dodjeljuju tipu podataka CHARACTER.

Ovaj karakterni tip podataka dalje je klasificiran na sljedeći način:

  • CHAR Tip podataka (fiksna veličina niza)
  • VARCHAR2 Tip podataka (varijabilna veličina niza)
  • VARCHAR Tip podataka
  • NCHAR (nativna fiksna veličina niza)
  • NVARCHAR2 (prirodna varijabla veličine niza)
  • DUGO i DUGO SIROVO
Tip podataka Description Sintaksa
TENK Ovaj tip podataka pohranjuje vrijednost niza, a veličina niza je fiksna u trenutku deklariranja varijabla.

  • Oracle varijabla bi bila dopunjena praznim mjestom ako varijabla ne zauzima cijelu veličinu koja je za nju deklarirana, stoga Oracle će dodijeliti memoriju za deklariranu veličinu čak i ako je varijabla nije u potpunosti zauzela.
  • Ograničenje veličine za ovu vrstu podataka je 1-2000 bajtova.
  • Tip podataka CHAR prikladniji je za korištenje tamo gdje će se rukovati fiksnom veličinom podataka.
grade CHAR;
manager CHAR (10):= 'guru99';

Objašnjenje sintakse:

  • Prva naredba deklaracije deklarirala je varijablu 'grade' tipa podataka CHAR s maksimalnom veličinom od 1 bajta (zadana vrijednost).
  • Druga naredba deklaracije deklarirala je varijablu 'manager' tipa podataka CHAR s maksimalnom veličinom od 10 i dodijelila vrijednost 'guru99' koja ima 6 bajtova. Oracle će u ovom slučaju dodijeliti memoriju od 10 bajtova umjesto 6 bajtova.
VARCHAR2 Ova vrsta podataka pohranjuje niz, ali duljina niza nije fiksna.

  • Ograničenje veličine za ovu vrstu podataka je 1-4000 bajtova za veličinu stupca tablice i 1-32767 bajtova za varijable.
  • Veličina je definirana za svaku varijablu u trenutku deklaracije varijable.
  • Ali Oracle će dodijeliti memoriju tek nakon što je varijabla definirana, tj. Oracle će uzeti u obzir samo stvarnu duljinu niza koji je pohranjen u varijabli za dodjelu memorije, a ne veličinu koja je dana za varijablu u dijelu deklaracije.
  • Uvijek je dobro koristiti VARCHAR2 umjesto tipa podataka CHAR kako biste optimizirali upotrebu memorije.
manager VARCHAR2(10) := ‘guru99';

Objašnjenje sintakse:

  • Gornja naredba deklaracije deklarirala je varijablu 'manager' tipa podataka VARCHAR2 s maksimalnom veličinom od 10 i dodijelila joj je vrijednost 'guru99' koja ima 6 bajtova. Oracle će u ovom slučaju dodijeliti memoriju od samo 6 bajtova.
VARCHAR Ovo je sinonim za tip podataka VARCHAR2.

  • Uvijek je dobra praksa koristiti VARCHAR2 umjesto VARCHAR kako biste izbjegli promjene ponašanja.
manager VARCHAR(10) := ‘guru99';

Objašnjenje sintakse:

  • Gornja naredba deklaracije deklarirala je varijablu 'manager' tipa podataka VARCHAR s maksimalnom veličinom od 10 i dodijelila joj je vrijednost 'guru99' koja ima 6 bajtova. Oracle će u ovom slučaju dodijeliti memoriju od samo 6 bajtova. (Slično VARCHAR2)
NCHAR Ovaj tip podataka je isti kao tip podataka CHAR, ali će skup znakova biti nacionalni skup znakova.

  • Ovaj skup znakova može se definirati za sesiju koristeći NLS_PARAMETERS.
  • Skup znakova može biti UTF16 ili UTF8.
  • Ograničenje veličine je 1-2000 bajtova.
native NCHAR(10);

Objašnjenje sintakse:

  • Gornja naredba deklaracije deklarira varijablu 'izvornu' tipa podataka NCHAR s maksimalnom veličinom od 10.
  • Duljina ove varijable ovisi o (broju duljina) po bajtu kako je definirano u skupu znakova.
NVARCHAR2 Ovaj tip podataka je isti kao tip podataka VARCHAR2, ali će skup znakova biti nacionalnog skupa znakova.

  • Ovaj skup znakova može se definirati za sesiju koristeći NLS_PARAMETERS.
  • Skup znakova može biti UTF16 ili UTF8.
  • Ograničenje veličine je 1-4000 bajtova.
Native var NVARCHAR2(10):='guru99';

Objašnjenje sintakse:

  • Gornja naredba deklaracije deklarira varijablu 'Native_var' tipa podataka NVARCHAR2 s maksimalnom veličinom od 10.
LONG i LONGRAW Ova vrsta podataka koristi se za pohranu velikog teksta ili neobrađenih podataka do maksimalne veličine od 2 GB.

  • Oni se uglavnom koriste u rječniku podataka.
  • Vrsta podataka LONG koristi se za pohranu podataka skupa znakova, dok se LONG RAW koristi za pohranu podataka u binarnom formatu.
  • Vrsta podataka LONG RAW prihvaća medijske objekte, slike itd. dok LONG radi samo na podacima koji se mogu pohraniti pomoću skupa znakova.
Large_text LONG;
Large_raw LONG RAW;

Objašnjenje sintakse:

  • Gornja naredba deklaracije deklarira varijablu 'Large_text' tipa podataka LONG i 'Large_raw' tipa podataka LONG RAW.

Bilješka: Korištenje vrste podataka LONG ne preporučuje Oracle. Umjesto toga treba dati prednost LOB tipu podataka.

PL/SQL BROJ Tip podataka

Ova vrsta podataka pohranjuje brojeve s fiksnim ili pomičnim zarezom do 38 znamenki točnosti. Ovaj tip podataka koristi se za rad s poljima koja će sadržavati samo brojčane podatke. Varijabla se može deklarirati s detaljima o preciznosti i decimalnim znamenkama ili bez tih informacija. Vrijednosti ne moraju biti unutar navodnika tijekom dodjele za ovu vrstu podataka.

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

Objašnjenje sintakse:

  • U gornjem, prva deklaracija izjavljuje da je varijabla 'A' tipa podataka broja s ukupnom preciznošću 8 i decimalnim znamenkama 2.
  • Druga deklaracija izjavljuje da je varijabla 'B' tipa podataka broja s ukupnom preciznošću 8 i bez decimalnih znamenki.
  • Treća deklaracija je najgeneričnija, deklarira da je varijabla 'C' brojčanog tipa podataka bez ograničenja u preciznosti ili decimalnim mjestima. Može imati najviše 38 znamenki.

PL/SQL BOOLEAN tip podataka

Ova vrsta podataka pohranjuje logičke vrijednosti. Oracle Booleov tip podataka predstavlja TRUE ili FALSE i uglavnom se koristi u uvjetnim izjavama. Vrijednosti ne moraju biti unutar navodnika tijekom dodjele za ovu vrstu podataka.

Var1 BOOLEAN;

Objašnjenje sintakse:

  • U gornjem, varijabla 'Var1' je deklarirana kao BOOLEAN tip podataka. Izlaz koda bit će istinit ili lažan na temelju postavljenog uvjeta.

PL/SQL DATE tip podataka

Ova vrsta podataka pohranjuje vrijednosti u formatu datuma, kao datum, mjesec i godina. Kad god je varijabla definirana s tipom podataka DATE zajedno s datumom, može sadržavati informacije o vremenu, a prema zadanim postavkama informacije o vremenu postavljene su na 12:00:00 ako nisu navedene. Vrijednosti moraju biti unutar navodnika prilikom dodjele za ovu vrstu podataka.

Norma Oracle vremenski format za unos i izlaz je 'DD-MON-GG' i ponovno je postavljen na NLS_PARAMETERS (NLS_DATE_FORMAT) na razini sesije.

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

Objašnjenje sintakse:

  • U gornjem, varijabla 'newyear' je deklarirana kao tip podataka DATE i dodijeljena joj je vrijednost 1. siječnjast, datum 2015.
  • Druga deklaracija deklarira varijablu current_date kao tip podataka DATE i dodjeljuje vrijednost s trenutnim sistemskim datumom.
  • Obje ove varijable sadrže informacije o vremenu.

PL/SQL LOB vrsta podataka

Ova vrsta podataka se uglavnom koristi za pohranjivanje i rukovanje velikim blokovima nestrukturiranih podataka poput slika, multimedijskih datoteka itd. Oracle preferira LOB umjesto tipa podataka LONG jer je fleksibilniji od tipa podataka LONG. Dolje je nekoliko glavnih prednosti LOB u odnosu na LONG tip podataka.

  • Broj stupaca u tablici s tipom podataka LONG ograničen je na 1, dok tablica nema ograničenja na broj stupaca s tipom podataka LOB.
  • Alat podatkovnog sučelja prihvaća LOB tip podataka tablice tijekom replikacije podataka, ali izostavlja DUGI stupac tablice. Ove DUGE stupce potrebno je replicirati ručno.
  • Veličina stupca LONG je 2 GB, dok LOB može pohraniti do 128 TB.
  • Oracle stalno poboljšava tip podataka LOB u svakom od svojih izdanja u skladu sa suvremenim zahtjevima, dok je tip podataka LONG konstantan i ne dobiva mnogo ažuriranja.

Dakle, uvijek je dobro koristiti tip podataka LOB umjesto tipa podataka LONG. Slijede različite LOB vrste podataka. Mogu pohraniti do veličine od 128 terabajta.

  1. BLOB
  2. CLOB i NCLOB
  3. BFILE
Tip podataka Description Sintaksa
BLOB Ova vrsta podataka pohranjuje LOB podatke u binarnom formatu datoteke do maksimalne veličine od 128 TB. Ovo ne pohranjuje podatke temeljene na detaljima skupa znakova, tako da može pohraniti nestrukturirane podatke kao što su multimedijski objekti, slike itd.
Binary_data BLOB;

Objašnjenje sintakse:

  • U gornjem, varijabla 'Binary_data' je deklarirana kao BLOB.
CLOB i NCLOB Tip podataka CLOB pohranjuje LOB podatke u skup znakova, dok NCLOB pohranjuje podatke u izvorni skup znakova. Budući da ove vrste podataka koriste pohranu temeljenu na skupu znakova, ne mogu pohraniti podatke poput multimedije, slika itd. koji se ne mogu staviti u niz znakova. Maksimalna veličina ovih vrsta podataka je 128 TB.
Charac_data CLOB;

Objašnjenje sintakse:

  • U gornjem, varijabla 'Charac_data' je deklarirana kao CLOB tip podataka.
BFILE
  • BFILE su tipovi podataka koji pohranjuju podatke u nestrukturiranom binarnom formatu izvan baze podataka kao datoteku operativnog sustava.
  • Veličina BFILE je za ograničen operativni sustav, a one su datoteke samo za čitanje i ne mogu se mijenjati.

Rezime

Pokrili smo različite jednostavne tipove podataka koji su dostupni u PL / SQL zajedno s njihovom sintaksom. O složenim tipovima podataka naučit ćemo u daljnjim temama.