Oracle PL / SQL -tietotyypit: Totuusarvo, Numero, Päivämäärä (Esimerkki)

Sisällysluettelo:

Anonim

Mikä on PL / SQL-tietotyypit?

Tietotyyppi liittyy tiettyyn tallennusmuotoon ja aluerajoituksiin. Oraclessa kukin arvo tai vakio määritetään tietotyypin kanssa.

Periaatteessa se määrittelee, miten Oracle tallentaa, käsittelee ja käsittelee tietoja tietojen tallennuksen ja käsittelyn aikana.

Suurin ero PL / SQL- ja SQL-tietotyyppien välillä on, että SQL-tietotyyppi on rajoitettu taulukkosarakkeeseen, kun taas PL / SQL-tietotyyppejä käytetään PL / SQL-lohkoissa. Lisätietoja tästä myöhemmin opetusohjelmassa.

Seuraava on kaavio erilaisista tietotyypeistä PL / SQL: ssä

Tässä opetusohjelmassa opit-

  • CHARACTER-tietotyyppi
  • NUMBER tietotyyppi
  • BOOLEN tietotyyppi
  • DATE-tietotyyppi
  • LOB-tietotyyppi

CHARACTER-tietotyyppi:

Tämä tietotyyppi tallentaa pohjimmiltaan aakkosnumeeriset merkit merkkijonomuodossa.

Kirjaimelliset arvot tulee aina liittää lainausmerkeihin samalla, kun ne määritetään CHARACTER-tietotyypille.

Tämä merkkitietotyyppi luokitellaan edelleen seuraavasti:

  • CHAR-tietotyyppi (kiinteä merkkijonokoko)
  • VARCHAR2-tietotyyppi (vaihteleva merkkikoko)
  • VARCHAR-tietotyyppi
  • NCHAR (alkuperäinen kiinteä merkkijonokoko)
  • NVARCHAR2 (natiivimuuttujan merkkijonokoko)
  • PITKÄ ja PITKÄ RAAKA
Tietotyyppi Kuvaus Syntaksi
HIILTYÄ Tämä tietotyyppi tallentaa merkkijonon arvon ja merkkijonon koko on kiinteä muuttujan ilmoituksen yhteydessä.
  • Oracle olisi tyhjä pehmustettu muuttuja, jos muuttuja ei vie koko ilmoitettua kokoa, joten Oracle varaa muistin ilmoitetulle koolle, vaikka muuttuja ei olisikaan varattu sitä kokonaan.
  • Tämän tietotyypin kokorajoitus on 1-2000 tavua.
  • CHAR-tietotyyppi on tarkoituksenmukaisempi käyttää aina, kun tietojen koko käsitellään kiinteästi.
grade CHAR;manager CHAR (10):= 'guru99';
Syntaksi Selitys:
  • Ensimmäisessä lausekkeessa ilmoitettiin CHAR-tietotyypin muuttuja 'grade', jonka suurin koko on 1 tavu (oletusarvo).
  • Toisessa lausekkeessa ilmoitettiin CHAR-tietotyypin muuttuja 'manager', jonka maksimikoko oli 10, ja sille annettiin arvo 'guru99', joka on 6 tavua. Oracle jakaa tässä tapauksessa 10 tavun muistin 6 tavun sijaan.
VARCHAR2 Tämä tietotyyppi tallentaa merkkijonon, mutta merkkijonon pituus ei ole kiinteä.
  • Tämän tietotyypin kokorajoitus on 1-4000 tavua taulukon sarakekoolle ja 1-32767 tavua muuttujille.
  • Koko määritetään kullekin muuttujalle muuttujan ilmoituksen yhteydessä.
  • Mutta Oracle jakaa muistia vasta sen jälkeen, kun muuttuja on määritelty, eli Oracle ottaa huomioon vain muuttujaan tallennetun merkkijonon todellisen pituuden muistin kohdentamiseen sen sijaan, että se olisi annettu muuttujalle ilmoitusosassa.
  • Muistin käytön optimoimiseksi on aina hyvä käyttää VARCHAR2: ta CHAR-tietotyypin sijaan.
manager VARCHAR2(10) := ‘guru99';
Syntaksi Selitys:
  • Yllä oleva ilmoituslauseke ilmoitti muuttujan 'manager' VARCHAR2-tietotyypistä, jonka enimmäiskoko oli 10, ja määritettiin arvo 'guru99', joka on 6 tavua. Oracle jakaa tässä tapauksessa vain 6 tavun muistin.
VARCHAR Tämä on synonyymi VARCHAR2-tietotyypille.
  • On aina hyvä käytäntö käyttää VARCHAR2: ta VARCHARin sijaan käyttäytymismuutosten välttämiseksi.
manager VARCHAR(10) := ‘guru99';
Syntaksi Selitys:
  • Yllä oleva lauseke ilmoitti muuttujan 'manager' VARCHAR-tietotyypistä, jonka maksimikoko oli 10, ja sille annettiin arvo 'guru99', joka on 6 tavua. Oracle jakaa tässä tapauksessa vain 6 tavun muistin. (Samanlainen kuin VARCHAR2)
NCHAR Tämä tietotyyppi on sama kuin CHAR-tietotyyppi, mutta kansallisen merkistöjoukon merkistö tulee.
  • Tämä merkistö voidaan määrittää istunnolle käyttämällä NLS_PARAMETERS.
  • Merkistö voi olla joko UTF16 tai UTF8.
  • Kokorajoitus on 1-2000 tavua.
native NCHAR(10);
Syntaksi Selitys:
  • Yllä oleva ilmoituslauseke ilmoittaa NCHAR-tietotyypin muuttujan 'natiivi', jonka maksimikoko on 10.
  • Tämän muuttujan pituus riippuu merkistöön määritetystä (pituuksien lukumäärästä) tavua kohden.
NVARCHAR2 Tämä tietotyyppi on sama kuin VARCHAR2-tietotyyppi, mutta merkistö on kansallista merkistöä.
  • Tämä merkistö voidaan määrittää istunnolle käyttämällä NLS_PARAMETERS.
  • Merkistö voi olla joko UTF16 tai UTF8.
  • Kokorajoitus on 1-4000 tavua.
Native var NVARCHAR2(10):='guru99';
Syntaksi Selitys:
  • Yllä oleva ilmoituslauseke ilmoittaa NVARCHAR2-tietotyypin muuttujan 'Native_var', jonka enimmäiskoko on 10.
PITKÄ ja PITKÄ Tätä tietotyyppiä käytetään suurten teksti- tai raakatietojen tallentamiseen enintään 2 Gt: n kokoon asti.
  • Näitä käytetään pääasiassa datasanakirjassa.
  • PITKÄTIETOTyyppiä käytetään merkistötietojen tallentamiseen, kun taas PITKÄTRAJAA käytetään tietojen tallentamiseen binaarimuodossa.
  • LONG RAW -tietotyyppi hyväksyy mediaobjektit, kuvat jne., Kun taas LONG toimii vain tietoihin, jotka voidaan tallentaa merkistöjen avulla.
Large_text LONG;Large_raw LONG RAW;
Syntaksi Selitys:
  • Edellä oleva lauseke ilmoittaa muuttujan 'Large_text' LONG-tietotyypistä ja 'Large_raw' LONG RAW -tietotyypistä.
Huomautus: Oracle ei suosittele LONG-tietotyypin käyttöä. Sen sijaan LOB-tietotyyppi olisi suositeltava.

NUMBER tietotyyppi:

Tämä tietotyyppi tallentaa kiinteän tai liukuluvun numerot jopa 38 numeron tarkkuudella. Tätä tietotyyppiä käytetään työskentelemään kenttien kanssa, jotka sisältävät vain numerotietoja. Muuttuja voidaan ilmoittaa joko tarkkuudella ja desimaaliluvulla tai ilman näitä tietoja. Arvojen ei tarvitse olla lainausmerkeissä, kun ne määritetään tälle tietotyypille.

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

Syntaksi Selitys:

  • Edellä mainitussa ensimmäisessä ilmoituksessa ilmoitetaan, että muuttuja 'A' on numerotietotyyppiä täsmällisellä 8 ja desimaaliluvulla 2.
  • Toinen ilmoitus ilmoittaa, että muuttuja 'B' on numerotietotyyppiä, täsmällisyys 8 eikä desimaalilukuja.
  • Kolmas ilmoitus on yleisin, ilmoittaa, että muuttuja 'C' on numerotietotyyppiä ilman tarkkuus- tai desimaalirajoituksia. Se voi viedä enintään 38 numeroa.

BOOLEAN tietotyyppi:

Tämä tietotyyppi tallentaa loogiset arvot. Se edustaa joko TOSI tai EPÄTOSI ja sitä käytetään pääasiassa ehdollisissa lauseissa. Arvojen ei tarvitse olla lainausmerkeissä, kun ne määritetään tälle tietotyypille.

Var1 BOOLEAN;

Syntaksi Selitys:

  • Edellä mainitaan muuttuja 'Var1' BOOLEAN-tietotyypiksi. Koodin lähtö on joko tosi tai väärä asetetun ehdon perusteella.

DATE-tietotyyppi:

Tämä tietotyyppi tallentaa arvot päivämäärämuodossa päivämääränä, kuukautena ja vuotena. Aina kun muuttujalle määritetään DATE-tietotyyppi ja päivämäärä, se voi sisältää aikatiedot ja oletusasetuksena aikatiedoksi on asetettu 12:00:00, ellei sitä määritetä. Arvot on liitettävä lainausmerkkeihin, kun ne määritetään tälle tietotyypille.

Vakio Oracle-aikaformaatti syötteille ja lähdöille on 'DD-MON-YY', ja se asetetaan jälleen istuntotasolla NLS_PARAMETERS (NLS_DATE_FORMAT).

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

Syntaksi Selitys:

  • Yllä muuttujaa 'newyear' julistetaan DATE tietotyyppi ja annetaan arvo Tammikuun 1. päivästä st , 2015 mennessä.
  • Toinen ilmoitus ilmoittaa muuttujan current_date DATE-tietotyypiksi ja sille määritetään arvo nykyisen järjestelmän päivämäärän kanssa.
  • Molemmat muuttujat sisältävät aikatiedot.

LOB-tietotyyppi:

Tätä tietotyyppiä käytetään pääasiassa suurten strukturoimattomien tietojen lohkojen, kuten kuvien, multimediatiedostojen jne., Tallentamiseen ja käsittelyyn. Oracle mieluummin käyttää LOB-tiedostoa LONG-tietotyypin sijaan, koska se on joustavampi kuin LONG-tietotyyppi. Alla on muutama LOB: n tärkein etu LONG-tietotyyppiin nähden.

  • LONG-tietotyyppisen taulukon sarakkeiden määrä on rajoitettu yhteen, kun taas taulukossa ei ole rajoituksia LOB-tietotyyppisten sarakkeiden määrälle.
  • Tietoliitäntätyökalu hyväksyy taulukon LOB-tietotyypin tietojen replikoinnin aikana, mutta se jättää taulun PITKÄ sarake pois. Nämä LONG-sarakkeet on kopioitava manuaalisesti.
  • LONG-sarakkeen koko on 2 Gt, kun taas LOB voi tallentaa jopa 128 Tt.
  • Oracle parantaa jatkuvasti jokaisen julkaisun LOB-tietotyyppiä nykyaikaisen vaatimuksen mukaisesti, kun taas LONG-tietotyyppi on vakio eikä saa paljon päivityksiä.

Joten on aina hyvä käyttää LOB-tietotyyppiä LONG-tietotyypin sijaan. Seuraavassa on erilaisia ​​LOB-tietotyyppejä. Ne voivat tallentaa 128 teratavua.

  1. MÖYKKY
  2. CLOB ja NCLOB
  3. BFILE
Tietotyyppi Kuvaus Syntaksi
MÖYKKY

Tämä tietotyyppi tallentaa LOB-tiedot binaaritiedostomuodossa enintään 128 Tt: n kokoon. Tämä ei tallenna merkistöjoukon yksityiskohtiin perustuvaa dataa, jotta se voi tallentaa strukturoimattomat tiedot, kuten multimediaobjektit, kuvat jne.

Binary_data BLOB;

Syntaksi Selitys:

  • Yllä olevassa muuttuja 'Binary_data' ilmoitetaan BLOB-muodossa.
CLOB ja NCLOB

CLOB-tietotyyppi tallentaa LOB-tiedot merkistöön, kun taas NCLOB tallentaa tiedot alkuperäiseen merkistöön. Koska nämä tietotyypit käyttävät merkistöpohjaista tallennustilaa, ne eivät voi tallentaa tietoja, kuten multimediaa, kuvia jne., Joita ei voida laittaa merkkijonoon. Näiden tietotyyppien enimmäiskoko on 128 Tt.

Charac_data CLOB;

Syntaksi Selitys:

  • Edellä mainitaan muuttuja 'Charac_data' CLOB-tietotyypiksi.
BFILE
  • BFILE ovat tietotyyppejä, jotka tallensivat strukturoimattomat binaarimuodotiedot tietokannan ulkopuolelle käyttöjärjestelmätiedostona.
  • BFILE-koko on rajoitettu käyttöjärjestelmä, ja ne ovat vain luku -tiedostoja, eikä niitä voi muokata.

Yhteenveto

Olemme käsitelleet erilaisia ​​yksinkertaisia ​​tietotyyppejä, jotka ovat saatavana PL / SQL: ssä, sekä niiden syntaksin. Opimme monimutkaisista tietotyypeistä muista aiheista.