„Oracle PL / SQL“ duomenų tipai: loginis, skaičius, data (pavyzdys)

Turinys:

Anonim

Kas yra PL / SQL duomenų tipai?

Duomenų tipas yra susietas su konkrečiu saugojimo formatu ir diapazono apribojimais. „Oracle“ kiekviena reikšmė arba konstanta priskiriama duomenų tipui.

Iš esmės jis apibrėžia, kaip „Oracle“ saugo, tvarko ir tvarko duomenis duomenų saugojimo ir apdorojimo metu.

Pagrindinis skirtumas tarp PL / SQL ir SQL duomenų tipų yra tas, kad SQL duomenų tipas apsiriboja lentelės stulpeliu, o PL / SQL duomenų tipai naudojami PL / SQL blokuose. Daugiau apie tai vėliau pamokoje.

Toliau pateikiama skirtingų duomenų tipų schema PL / SQL

Šioje pamokoje sužinosite

  • CHARACTER duomenų tipas
  • NUMBER duomenų tipas
  • BOOLEAN duomenų tipas
  • DATA Duomenų tipas
  • LOB duomenų tipas

CHARACTER duomenų tipas:

Šis duomenų tipas iš esmės saugo raidinius ir skaitmeninius simbolius eilutės formatu.

Pažodinės vertės visada turėtų būti pateikiamos vienose kabutėse, jas priskiriant CHARACTER duomenų tipui.

Šis simbolių duomenų tipas toliau klasifikuojamas taip:

  • CHAR duomenų tipas (fiksuotas eilutės dydis)
  • VARCHAR2 duomenų tipas (kintamas eilutės dydis)
  • VARCHAR Duomenų tipas
  • NCHAR (vietinis fiksuoto eilutės dydis)
  • „NVARCHAR2“ (įprastas kintamos eilutės dydis)
  • ILGAS IR ILGAS RAW
Duomenų tipas apibūdinimas Sintaksė
CHAR Šis duomenų tipas saugo eilutės vertę, o eilutės dydis yra fiksuotas deklaruojant kintamąjį.
  • „Oracle“ kintamasis būtų tuščias, jei kintamasis neužimtų viso jam deklaruoto dydžio, taigi „Oracle“ paskirstys atmintį deklaruotam dydžiui, net jei kintamasis jo neužėmė.
  • Šio tipo duomenų apribojimas yra 1-2000 baitų.
  • CHAR duomenų tipą tikslingiau naudoti ten, kur kada nors nustatyta duomenų dydis bus tvarkomas.
grade CHAR;manager CHAR (10):= 'guru99';
Sintaksės paaiškinimas:
  • Pirmajame deklaracijos pareiškime deklaruotas kintamasis „CHAR“ duomenų tipo maksimalus dydis - 1 baitas (numatytoji vertė).
  • Antrasis deklaracijos pareiškimas paskelbė kintamąjį CHAR duomenų tipo kintamąjį „manager“, kurio didžiausias dydis buvo 10, ir priskyrė 6 baitų reikšmę „guru99“. Šiuo atveju „Oracle“ skirs 10, o ne 6 baitų atmintį.
VARCHAR2 Šis duomenų tipas įrašo eilutę, tačiau eilutės ilgis nėra fiksuotas.
  • Šio duomenų tipo dydžio apribojimas yra 1–4000 baitų lentelės stulpelio dydžiui ir 1-32767 baitas kintamiesiems.
  • Kiekvieno kintamojo dydis yra apibrėžtas kintamojo deklaravimo metu.
  • Tačiau „Oracle“ paskirstys atmintį tik tada, kai bus apibrėžtas kintamasis, ty „Oracle“ atsižvelgs tik į faktinį eilutės ilgį, kuris saugomas kintamajame, kad būtų paskirstytas atmintis, o ne dydį, kuris buvo pateiktas kintamajam deklaracijos dalyje.
  • Norint optimizuoti atminties naudojimą, visada gerai naudoti VARCHAR2 vietoj CHAR duomenų tipo.
manager VARCHAR2(10) := ‘guru99';
Sintaksės paaiškinimas:
  • Pirmiau pateiktame deklaracijos pareiškime deklaruotas VARCHAR2 duomenų tipo kintamasis „manager“, kurio maksimalus dydis yra 10, ir priskirta 6 baitų reikšmė „guru99“. Šiuo atveju „Oracle“ paskirstys tik 6 baitų atmintį.
VARCHARAS Tai yra VARCHAR2 duomenų tipo sinonimas.
  • Visada yra gera praktika naudoti VARCHAR2 vietoj VARCHAR, kad būtų išvengta elgesio pokyčių.
manager VARCHAR(10) := ‘guru99';
Sintaksės paaiškinimas:
  • Pirmiau pateiktame deklaracijos pareiškime deklaruotas VARCHAR duomenų tipo kintamasis „manager“, kurio didžiausias dydis yra 10, ir priskirta 6 baitų reikšmė „guru99“. Šiuo atveju „Oracle“ paskirstys tik 6 baitų atmintį. (Panašus į VARCHAR2)
NCHAR Šis duomenų tipas yra toks pat kaip CHAR duomenų tipas, tačiau nacionalinių simbolių rinkinio simbolių rinkinys bus.
  • Šį simbolių rinkinį galima apibrėžti seansui naudojant NLS_PARAMETERS.
  • Simbolių rinkinys gali būti UTF16 arba UTF8.
  • Dydžio apribojimas yra 1-2000 baitų.
native NCHAR(10);
Sintaksės paaiškinimas:
  • Pirmiau pateiktame deklaracijos pareiškime nurodomas NCHAR duomenų tipo kintamasis „gimtoji“, kurio maksimalus dydis yra 10.
  • Šio kintamojo ilgis priklauso nuo (ilgių skaičiaus) vieno baito, kaip apibrėžta simbolių rinkinyje.
„NVARCHAR2“ Šis duomenų tipas yra toks pats kaip VARCHAR2 duomenų tipas, tačiau simbolių rinkinys bus nacionalinio simbolių rinkinio.
  • Šį simbolių rinkinį galima apibrėžti seansui naudojant NLS_PARAMETERS.
  • Simbolių rinkinys gali būti UTF16 arba UTF8.
  • Dydžio apribojimas yra 1–4000 baitų.
Native var NVARCHAR2(10):='guru99';
Sintaksės paaiškinimas:
  • Pirmiau pateiktame deklaracijos pareiškime skelbiamas „NVARCHAR2“ duomenų tipo kintamasis „Native_var“, kurio didžiausias dydis yra 10.
ILGAI IR ILGAI Šis duomenų tipas naudojamas saugoti didelius teksto arba neapdorotus duomenis, kurių maksimalus dydis yra 2 GB.
  • Jie daugiausia naudojami duomenų žodyne.
  • LONG duomenų tipas naudojamas simbolių rinkinio duomenims saugoti, o LONG RAW naudojamas duomenims kaupti dvejetainiu formatu.
  • LONG RAW duomenų tipas priima medijos objektus, vaizdus ir kt., O LONG veikia tik su duomenimis, kuriuos galima išsaugoti naudojant simbolių rinkinį.
Large_text LONG;Large_raw LONG RAW;
Sintaksės paaiškinimas:
  • Pirmiau pateiktame deklaracijos pareiškime deklaruojamas LONG duomenų tipo kintamasis „Large_text“ ir LONG RAW duomenų tipo „Large_raw“.
Pastaba: „Oracle“ nerekomenduojama naudoti ilgų duomenų tipo. Vietoj to turėtų būti teikiama pirmenybė LOB duomenų tipui.

NUMBER duomenų tipas:

Šis duomenų tipas saugo fiksuotų arba slankiojo kablelio skaičių iki 38 skaitmenų tikslumo. Šis duomenų tipas naudojamas dirbant su laukais, kuriuose bus tik skaičių duomenys. Kintamasis gali būti deklaruojamas tikslia ir dešimtainio skaitmens informacija arba be šios informacijos. Priskiriant šį duomenų tipą, vertės neturi būti kabutėse.

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

Sintaksės paaiškinimas:

  • Pirmiau pateiktoje deklaracijoje nurodoma, kad kintamasis „A“ yra duomenų tipo, kurio bendras tikslumas yra 8 ir 2 skaitmenys po kablelio.
  • Antroje deklaracijoje skelbiama, kad kintamasis „B“ yra duomenų tipo, kurio bendras tikslumas yra 8, be dešimtainių skaitmenų.
  • Trečioji deklaracija yra pati bendriausia, skelbia, kad kintamasis „C“ yra duomenų tipo, be tikslumo ar dešimtųjų tikslumo apribojimų. Tai gali sudaryti iki 38 skaitmenų.

BOOLEAN duomenų tipas:

Šis duomenų tipas saugo logines vertes. Tai reiškia TRUE arba FALSE ir daugiausia naudojama sąlyginiuose sakiniuose. Priskiriant šį duomenų tipą, vertės neturi būti kabutėse.

Var1 BOOLEAN;

Sintaksės paaiškinimas:

  • Pirmiau kintamasis „Var1“ yra deklaruojamas kaip BOOLEAN duomenų tipas. Pagal nustatytą sąlygą kodo išvestis bus teisinga arba klaidinga.

DATA Duomenų tipas:

Šis duomenų tipas išsaugo reikšmes datos formatu, kaip data, mėnuo ir metai. Kai kintamasis apibrėžiamas su DATE duomenų tipu kartu su data, jame gali būti laiko informacija ir pagal numatytuosius nustatymus laiko informacija yra nustatyta 12:00:00, jei nenurodyta. Priskiriant šį duomenų tipą, vertes reikia įtraukti į kabutes.

Standartinis įvesties ir išvesties „Oracle“ laiko formatas yra „DD-MON-YY“, o sesijos lygiu jis vėl nustatytas kaip NLS_PARAMETERS (NLS_DATE_FORMAT).

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

Sintaksės paaiškinimas:

  • Pirmiau, kintamasis "newyear" yra deklaruojamas kaip DATA duomenų tipas ir priskirtas Jan 1 vertę g , 2015 dienos.
  • Antroji deklaracija skelbia, kad kintamasis current_date yra DATE duomenų tipas ir jam priskiriama reikšmė su dabartine sistemos data.
  • Abu šie kintamieji turi laiko informaciją.

LOB duomenų tipas:

Šis duomenų tipas dažniausiai naudojamas saugoti ir valdyti didelius nestruktūruotų duomenų blokus, tokius kaip vaizdai, daugialypės terpės failai ir kt. „Oracle“ teikia pirmenybę LOB vietoj LONG duomenų tipo, nes jis yra lankstesnis nei LONG duomenų tipas. Toliau pateikiami keli pagrindiniai LOB pranašumai prieš LONG duomenų tipą.

  • Stulpelių skaičius lentelėje su LONG duomenų tipu yra ribojamas iki 1, o lentelėje nėra jokių apribojimų skaičiui stulpelių su LOB duomenų tipu.
  • Duomenų sąsajos įrankis priima lentelės LOB duomenų tipą duomenų replikavimo metu, tačiau praleidžia ilgą lentelės stulpelį. Šiuos LONG stulpelius reikia pakartoti rankiniu būdu.
  • LONG stulpelio dydis yra 2 GB, o LOB gali talpinti iki 128 TB.
  • „Oracle“ nuolat tobulina LOB duomenų tipą kiekviename leidime pagal šiuolaikinius reikalavimus, o LONG duomenų tipas yra pastovus ir negauna daug atnaujinimų.

Taigi, visada gerai naudoti LOB duomenų tipą, o ne LONG duomenų tipą. Toliau pateikiami skirtingi LOB duomenų tipai. Jie gali saugoti iki 128 terabaitų dydžio.

  1. BLOB
  2. CLOB ir NCLOB
  3. BFILĖ
Duomenų tipas apibūdinimas Sintaksė
BLOB

Šis duomenų tipas saugo LOB duomenis dvejetainio failo formatu iki didžiausio 128 TB dydžio. Tai nesaugo duomenų, pagrįstų išsamiomis simbolių rinkinio detalėmis, kad būtų galima išsaugoti nestruktūrizuotus duomenis, tokius kaip daugialypės terpės objektai, vaizdai ir kt.

Binary_data BLOB;

Sintaksės paaiškinimas:

  • Pirmiau, kintamasis „Dvejetainiai_duomenys“ yra deklaruojamas kaip BLOB.
CLOB ir NCLOB

CLOB duomenų tipas LOB duomenis saugo simbolių rinkinyje, o NCLOB duomenis - savųjų simbolių rinkinyje. Kadangi šie duomenų tipai naudoja simbolių rinkinį pagrįstą saugyklą, jie negali laikyti tokių duomenų kaip daugialypės terpės, vaizdų ir pan., Kurių negalima įdėti į simbolių eilutę. Maksimalus šių duomenų tipų dydis yra 128 TB.

Charac_data CLOB;

Sintaksės paaiškinimas:

  • Pirmiau kintamasis „Charac_data“ yra deklaruojamas kaip CLOB duomenų tipas.
BFILĖ
  • BFILE yra duomenų tipai, kurie nestruktūrizuotus dvejetainio formato duomenis už duomenų bazės saugojo kaip operacinės sistemos failą.
  • „BFILE“ dydis yra ribota operacinė sistema, jie yra tik skaitomi failai ir jų negalima modifikuoti.

Santrauka

Apžvelgėme įvairius paprastus duomenų tipus, kurie yra prieinami PL / SQL, kartu su jų sintakse. Sužinosime apie sudėtingus duomenų tipus kitose temose.