Oracle PL / SQL andmetüübid: Boolean, Number, Date (näide)

Lang L: none (table-of-contents):

Anonim

Mis on PL / SQL-i andmetüübid?

Andmetüüp on seotud konkreetse salvestusvormingu ja vahemiku piirangutega. Oracle'is määratakse iga väärtus või konstant andmetüübiga.

Põhimõtteliselt määratleb see, kuidas Oracle andmeid salvestab, käsitleb ja käsitleb andmete salvestamise ja töötlemise ajal.

Peamine erinevus PL / SQL ja SQL andmetüüpide vahel on see, et SQLi andmetüüp piirdub tabeliveeruga, PL / SQL andmetüüpe kasutatakse PL / SQL plokkides. Lisateavet selle kohta leiate hiljem juhendajast.

Järgmine on PL / SQL-i erinevate andmetüüpide diagramm

Selles õpetuses saate teada

  • CHARACTER Andmetüüp
  • NUMBER andmetüüp
  • BOOLEANi andmetüüp
  • DATE andmetüüp
  • LOB-i andmetüüp

CHARACTER Andmetüüp:

See andmetüüp salvestab põhiliselt tähtnumbrilised märgid stringivormingus.

Sõnasõnalised väärtused tuleks alati lisada üksikutesse jutumärkidesse, määrates need samas andmetüübile CHARACTER.

See tähemärgi andmetüüp klassifitseeritakse järgmiselt:

  • CHAR Andmetüüp (fikseeritud stringi suurus)
  • VARCHAR2 andmetüüp (muutuv stringi suurus)
  • VARCHAR Andmetüüp
  • NCHAR (algne fikseeritud stringi suurus)
  • NVARCHAR2 (algse muutuva stringi suurus)
  • PIKK ja PIKKAS RAW
Andmetüüp Kirjeldus Süntaks
CHAR See andmetüüp salvestab stringi väärtuse ja stringi suurus on muutuja deklareerimise ajal fikseeritud.
  • Oracle oleks muutujaga tühi, kui muutuja ei hõivaks kogu selle jaoks deklareeritud suurust, seega eraldab Oracle deklareeritud suuruse mälu isegi siis, kui muutuja seda täielikult ei hõivanud.
  • Selle andmetüübi suuruse piirang on 1-2000 baiti.
  • Andmetüüpi CHAR on sobivam kasutada alati, kui andmete suurust fikseeritakse.
grade CHAR;manager CHAR (10):= 'guru99';
Süntaksi selgitus:
  • Esimeses deklaratsioonis avaldati CHAR-andmetüübi muutuja „hinne” maksimaalse suurusega 1 bait (vaikeväärtus).
  • Teine deklaratsioon kuulutas CHAR-i andmetüübi muutuja 'manager' maksimaalse suurusega 10 ja määras väärtuseks 6 gaidi guru99. Oracle eraldab sel juhul mälu 10 baiti asemel 6 baiti.
VARCHAR2 See andmetüüp salvestab stringi, kuid stringi pikkus pole fikseeritud.
  • Selle andmetüübi suuruse piirang on 1-4000 baiti tabeli veeru suuruse ja 1-32767 baiti muutujate jaoks.
  • Suurus määratakse iga muutuja jaoks muutuja deklareerimise ajal.
  • Kuid Oracle eraldab mälu alles pärast muutuja määratlemist, st Oracle võtab mälu jaotamiseks arvesse ainult muutujale salvestatud stringi tegelikku pikkust, mitte deklaratsiooni osas muutujale antud suurust.
  • Mälukasutuse optimeerimiseks on alati hea kasutada VARCHAR2 andmetüübi CHAR asemel.
manager VARCHAR2(10) := ‘guru99';
Süntaksi selgitus:
  • Ülaltoodud deklaratsiooniga deklareeriti VARCHAR2 andmetüübi muutuja 'manager' maksimaalse suurusega 10 ja määrati väärtuseks 6 gaidi guru99. Oracle eraldab sel juhul ainult 6 baiti mälu.
VARCHAR See on VARCHAR2 andmetüübi sünonüüm.
  • Käitumuslike muutuste vältimiseks on alati hea kasutada VARCHAR2 asemel VARCHAR2.
manager VARCHAR(10) := ‘guru99';
Süntaksi selgitus:
  • Ülaltoodud deklaratsiooniga deklareeriti VARCHARi andmetüübi muutuja 'manager' maksimaalse suurusega 10 ja määrati väärtuseks 6 gaidi guru99 Oracle eraldab sel juhul ainult 6 baiti mälu. (Sarnane VARCHAR2-ga)
NCHAR See andmetüüp on sama mis CHAR andmetüüp, kuid siseriikliku märgistiku tähemärk jääb samaks.
  • Selle märgistiku saab seansi jaoks määratleda, kasutades NLS_PARAMETERS.
  • Märgistik võib olla kas UTF16 või UTF8.
  • Suurusepiirang on 1-2000 baiti.
native NCHAR(10);
Süntaksi selgitus:
  • Ülaltoodud deklaratsioon deklareerib NCHAR andmetüübi muutuja "native" maksimaalse suurusega 10.
  • Selle muutuja pikkus sõltub (pikkuste arvust) baidi kohta, nagu on määratletud märgistikus.
NVARCHAR2 See andmetüüp on sama mis VARCHAR2 andmetüüp, kuid tähemärkide komplekt on riiklik märgistik.
  • Selle märgistiku saab seansi jaoks määratleda, kasutades NLS_PARAMETERS.
  • Märgistik võib olla kas UTF16 või UTF8.
  • Suurusepiirang on 1–4000 baiti.
Native var NVARCHAR2(10):='guru99';
Süntaksi selgitus:
  • Ülaltoodud deklaratsioon deklareerib NVARCHAR2 andmetüübi muutuja 'Native_var' maksimaalse suurusega 10.
PIKA ja PIKA Seda andmetüüpi kasutatakse suurte teksti- või algandmete salvestamiseks kuni maksimaalselt 2 GB.
  • Neid kasutatakse peamiselt andmesõnastikus.
  • LONG andmetüüpi kasutatakse märgistiku andmete salvestamiseks, LONG RAW-d aga kahendformaadis andmete salvestamiseks.
  • LONG RAW andmetüüp aktsepteerib meediaobjekte, pilte jne. LONG töötab ainult andmetel, mida saab salvestada märgistiku abil.
Large_text LONG;Large_raw LONG RAW;
Süntaksi selgitus:
  • Ülaltoodud deklaratsioon deklareerib LONG andmetüübi muutuja 'Large_text' ja LONG RAW andmetüübi 'Large_raw'.
Märkus . Oracle ei soovita kasutada PIKKAT tüüpi andmetüüpi. Selle asemel tuleks eelistada LOB-i andmetüüpi.

NUMBER andmetüüp:

See andmetüüp salvestab fikseeritud või ujukomaarvud kuni 38-kohalise täpsusega. Seda andmetüüpi kasutatakse väljadega töötamiseks, mis sisaldavad ainult arvandmeid. Muutuja saab deklareerida kas täpsuse ja kümnendkoha täpsusega või ilma selle teabeta. Selle andmetüübi määramisel ei pea väärtused pakkumisi pakkuma.

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

Süntaksi selgitus:

  • Eespool kirjeldatuna deklareeritakse esimeses deklaratsioonis, et muutuja A on arvandmetüüp, täppistäpsusega 8 ja kümnendkohaga 2.
  • Teises deklaratsioonis deklareeritakse, et muutuja B on arvandmetüüp, täppistäpsusega 8 ja ilma kümnendkohtadeta.
  • Kolmas deklaratsioon on kõige üldisem, deklareerib, et muutuja C on arvandmetüüp, täpsus- ja kümnendkohtade piiranguteta. See võib võtta maksimaalselt 38 numbrit.

BOOLEANi andmetüüp:

See andmetüüp salvestab loogilised väärtused. See tähistab kas TRUE või FALSE ja seda kasutatakse peamiselt tingimuslausetes. Selle andmetüübi määramisel ei pea väärtused pakkumisi pakkuma.

Var1 BOOLEAN;

Süntaksi selgitus:

  • Eespool on deklareeritud muutuja „Var1” BOOLEANi andmetüübina. Koodi väljund on seatud tingimuse põhjal kas tõene või vale.

DATE andmetüüp:

See andmetüüp salvestab väärtused kuupäeva vormingus kuupäeva, kuu ja aastana. Alati, kui muutujale määratakse andmetüüp DATE koos kuupäevaga, võib see sisaldada ajainfot ja vaikimisi on kellaajaandmeteks seatud 12:00:00, kui seda pole määratud. Selle andmetüübi määramisel tuleb väärtused pakkumistesse lisada.

Oracle'i sisendi ja väljundi ajavorming on „DD-MON-YY” ja seansi tasemel määratakse see uuesti väärtuseks NLS_PARAMETERS (NLS_DATE_FORMAT).

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

Süntaksi selgitus:

  • Ülal muutuja "newyear" on deklareeritud DATE andmete tüüp ja määratud väärtus 1. jaanuar st 2015 kuupäeva.
  • Teine deklaratsioon deklareerib muutuja current_date andmetüübiks DATE ja omistab väärtuse praeguse süsteemi kuupäevaga.
  • Mõlemad muutujad hoiavad ajainfot.

LOB-i andmetüüp:

Seda andmetüüpi kasutatakse peamiselt struktureerimata andmete nagu piltide, multimeediumifailide jms suurte plokkide salvestamiseks ja manipuleerimiseks. Oracle eelistab LONG andmetüübi asemel LOB-i, kuna see on paindlikum kui LONG-tüüpi andmetüüp. Allpool on LOB-i vähesed peamised eelised LONG-tüüpi andmetega võrreldes.

  • LONG andmetüübiga tabeli veergude arv on piiratud 1-ga, samas kui tabelis pole LOB-tüüpi veergude arvu piiranguid.
  • Andmeliidese tööriist aktsepteerib andmete replikatsiooni ajal tabeli LOB andmetüüpi, kuid jätab tabeli LONG veeru välja. Need LONG veerud tuleb käsitsi kopeerida.
  • Veeru LONG suurus on 2 GB, samas kui LOB suudab salvestada kuni 128 TB.
  • Oracle täiustab pidevalt iga väljaande LOB-tüüpi andmetüüpi vastavalt tänapäevasele nõudele, samas kui PIKK andmetüüp on pidev ja ei saa palju värskendusi.

Seega on LONG andmetüübi asemel alati hea kasutada LOB-tüüpi andmetüüpi. Järgnevalt on toodud erinevad LOB-tüüpi andmetüübid. Nad suudavad salvestada kuni 128 terabaiti.

  1. MÄNG
  2. CLOB ja NCLOB
  3. BFILE
Andmetüüp Kirjeldus Süntaks
MÄNG

See andmetüüp salvestab LOB-andmed binaarses failivormingus kuni maksimaalse mahuni 128 TB. See ei salvesta andmeid, mis põhinevad märgistiku detailidel, nii et see suudab salvestada struktureerimata andmeid, näiteks multimeediaobjekte, pilte jne.

Binary_data BLOB;

Süntaksi selgitus:

  • Eespool on deklareeritud muutuja 'Binary_data' BLOB.
CLOB ja NCLOB

CLOB andmetüüp salvestab LOB-i andmed märkide komplekti, NCLOB aga andmed natiivsesse märgistikku. Kuna need andmetüübid kasutavad märgistikupõhist salvestusruumi, ei saa need salvestada selliseid andmeid nagu multimeedia, pildid jms, mida ei saa märgistringi panna. Nende andmetüüpide maksimaalne suurus on 128 TB.

Charac_data CLOB;

Süntaksi selgitus:

  • Eespool on deklareeritud muutuja 'Charac_data' CLOB andmetüübina.
BFILE
  • BFILE on andmetüübid, mis talletasid struktureerimata kahendvormingus andmed väljaspool andmebaasi operatsioonisüsteemi failina.
  • BFILE on piiratud operatsioonisüsteemiga ning need on kirjutuskaitstud failid ja neid ei saa muuta.

Kokkuvõte

Oleme käsitlenud erinevaid lihtsaid andmetüüpe, mis on saadaval PL / SQL-is, koos nende süntaksiga. Lisateavet keerukate andmetüüpide kohta leiate järgmistest teemadest.