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.

Saลพmite ovu objavu uz: