Oracle PL/SQL-tietotyypit: Boolen arvo, numero, päivämäärä [esimerkki]

Mikä on PL/SQL-tietotyypit?

Tietotyypit PL/SQL:ssä käytetään määrittämään, kuinka tiedot tallennetaan, käsitellään ja käsitellään Oracle tietojen tallennuksen ja käsittelyn aikana. Tietotyypit liittyvät tiettyyn tallennusmuotoon ja alueen rajoituksiin. Sisään Oracle, jokaiselle arvolle tai vakiolle on määritetty tietotyyppi.

Suurin ero PL/SQL:n ja SQL tietotyypit on, SQL-tietotyyppi on rajoitettu taulukon sarakkeeseen, kun taas PL/SQL-tietotyyppejä käytetään PL/SQL-lohkot. Tästä lisää myöhemmin opetusohjelmassa.

Seuraavassa on kaavio eri Oracle PL/SQL-tietotyypit:

PL/SQL-tietotyypit
Eri tietotyypit PL/SQL:ssä

PL/SQL CHARACTER Tietotyyppi

Tämä tietotyyppi tallentaa periaatteessa aakkosnumeeriset merkit merkkijonomuodossa.

Kirjaimelliset arvot tulee aina sulkea lainausmerkeissä, kun ne määritetään CHARACTER-tietotyypille.

Tämä merkkitietotyyppi luokitellaan edelleen seuraavasti:

  • CHAR Tietotyyppi (kiinteä merkkijonokoko)
  • VARCHAR2 Tietotyyppi (muuttuva merkkijonokoko)
  • VARCHAR Tietotyyppi
  • NCHAR (natiivi kiinteä merkkijonokoko)
  • NVARCHAR2 (natiivimuuttujan merkkijonokoko)
  • PITKÄ ja PITKÄ RAW
Tietotyyppi Tuotetiedot Syntaksi
HIILTYÄ Tämä tietotyyppi tallentaa merkkijonon arvon, ja merkkijonon koko on kiinteä ilmoitushetkellä muuttuja.

  • Oracle muuttuja olisi tyhjä, jos muuttuja ei täytä koko sille ilmoitettua kokoa, joten Oracle varaa muistin ilmoitetun koon mukaan, vaikka muuttuja ei olisi täyttänyt sitä kokonaan.
  • Tämän tietotyypin kokorajoitus on 1-2000 tavua.
  • CHAR-tietotyyppi on tarkoituksenmukaisempi käyttää silloin, kun datan koko on aina kiinteä.
grade CHAR;
manager CHAR (10):= 'guru99';

Syntaksiselitys:

  • Ensimmäinen ilmoituslause ilmoitti CHAR-tietotyypin muuttujan 'grade', jonka enimmäiskoko on 1 tavu (oletusarvo).
  • Toinen ilmoituskäsky ilmoitti CHAR-tietotyypin muuttujan 'manager', jonka enimmäiskoko on 10, ja antoi arvon 'guru99', joka on 6 tavua. Oracle varaa 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 sarakkeiden koolle ja 1-32767 tavua muuttujille.
  • Koko määritetään kullekin muuttujalle muuttujan ilmoittamisen yhteydessä.
  • Mutta Oracle varaa muistia vasta muuttujan määrittämisen jälkeen, esim. Oracle ottaa huomioon vain sen merkkijonon todellisen pituuden, joka on tallennettu muuttujaan muistin varaamista varten, eikä kokoa, joka on annettu muuttujalle ilmoitusosassa.
  • On aina hyvä käyttää VARCHAR2:ta CHAR-tietotyypin sijaan muistin käytön optimoimiseksi.
manager VARCHAR2(10) := ‘guru99';

Syntaksiselitys:

  • Yllä oleva ilmoituslause ilmoitti VARCHAR2-tietotyypin muuttujan 'manager', jonka enimmäiskoko on 10, ja antoi arvon 'guru99', joka on 6 tavua. Oracle varaa tässä tapauksessa vain 6 tavua muistia.
VARCHAR Tämä on synonyymi VARCHAR2-tietotyypille.

  • On aina hyvä käytäntö käyttää VARCHAR2:ta VARCHARin sijasta käyttäytymismuutosten välttämiseksi.
manager VARCHAR(10) := ‘guru99';

Syntaksiselitys:

  • Yllä oleva ilmoituslause ilmoitti VARCHAR-tietotyypin muuttujan 'manager', jonka enimmäiskoko on 10, ja antoi arvon 'guru99', joka on 6 tavua. Oracle varaa tässä tapauksessa vain 6 tavua muistia. (Samanlainen kuin VARCHAR2)
NCHAR Tämä tietotyyppi on sama kuin CHAR-tietotyyppi, mutta kansallisen merkistön merkistö.

  • 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);

Syntaksiselitys:

  • Yllä oleva ilmoituslause ilmoittaa NCHAR-tietotyypin muuttujan 'native', jonka enimmäiskoko on 10.
  • Tämän muuttujan pituus riippuu (pituuksien lukumäärästä) tavua kohden merkistössä määritetyllä tavalla.
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';

Syntaksiselitys:

  • Yllä oleva ilmoituslause ilmoittaa NVARCHAR2-tietotyypin muuttujan 'Native_var', jonka enimmäiskoko on 10.
PITKÄ ja PITKÄ Tätä tietotyyppiä käytetään suuren tekstin tai raakadatan tallentamiseen enintään 2 Gt:n kokoon.

  • Näitä käytetään pääasiassa tietosanakirjassa.
  • LONG-tietotyyppiä käytetään merkistötietojen tallentamiseen, kun taas LONG RAW -tietotyyppiä käytetään tietojen tallentamiseen binäärimuodossa.
  • LONG RAW -tietotyyppi hyväksyy mediaobjekteja, kuvia jne., kun taas LONG toimii vain tiedoilla, jotka voidaan tallentaa merkistöllä.
Large_text LONG;
Large_raw LONG RAW;

Syntaksiselitys:

  • Yllä oleva ilmoituslause ilmoittaa LONG-tietotyypin muuttujan 'Large_text' ja LONG RAW -tietotyypin 'Large_raw'.

Huomautus: LONG-tietotyypin käyttöä ei suositella Oracle. Sen sijaan LOB-tietotyyppiä tulisi suosia.

PL/SQL NUMERO Tietotyyppi

Tämä tietotyyppi tallentaa kiinteitä tai liukulukuja enintään 38 numeron tarkkuudella. Tätä tietotyyppiä käytetään kenttien kanssa, jotka sisältävät vain numerotietoja. Muuttuja voidaan ilmoittaa joko tarkkuudella ja desimaalinumeroilla tai ilman näitä tietoja. Arvojen ei tarvitse olla lainausmerkeissä tälle tietotyypille määritettäessä.

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

Syntaksiselitys:

  • Yllä olevassa ensimmäinen ilmoitus ilmoittaa, että muuttuja 'A' on numerotietotyyppiä kokonaistarkkuudella 8 ja desimaaliluvuilla 2.
  • Toinen ilmoitus ilmoittaa, että muuttuja 'B' on numerotietotyyppiä kokonaistarkkuudella 8 eikä siinä ole desimaalilukuja.
  • Kolmas ilmoitus on yleisin, ilmoittaa muuttuja 'C' on numerotietotyyppiä ilman rajoituksia tarkkuudessa tai desimaalipisteissä. Se voi kestää enintään 38 numeroa.

PL/SQL BOOLEAN-tietotyyppi

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

Var1 BOOLEAN;

Syntaksiselitys:

  • Yllä olevassa muuttuja 'Var1' on ilmoitettu BOOLEAN-tietotyypiksi. Koodin tulos on joko tosi tai epätosi ehtojoukon perusteella.

PL/SQL DATE Tietotyyppi

Tämä tietotyyppi tallentaa arvot päivämäärämuodossa, kuten päivämäärä, kuukausi ja vuosi. Aina kun muuttuja on määritetty DATE-tietotyypillä yhdessä päivämäärän kanssa, se voi sisältää aikatietoja ja oletusarvoisesti aikatiedot on asetettu arvoon 12:00:00, jos sitä ei ole määritetty. Arvot on lisättävä lainausmerkkeihin määritettäessä tälle tietotyypille.

Standardi Oracle syötteen ja lähdön aikamuoto on "DD-MON-YY", ja se on jälleen asetettu arvoon NLS_PARAMETERS (NLS_DATE_FORMAT) istuntotasolla.

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

Syntaksiselitys:

  • Yllä olevassa muuttuja 'newyear' on ilmoitettu DATE-tietotyypiksi ja sille on annettu arvo 1.st, 2015 päivämäärä.
  • Toinen ilmoitus ilmoittaa muuttujan current_date tietotyypiksi PÄIVÄYS ja määrittää arvon nykyisen järjestelmän päivämäärän kanssa.
  • Molemmat muuttujat sisältävät aikatiedot.

PL/SQL LOB-tietotyyppi

Tätä tietotyyppiä käytetään pääasiassa suurten strukturoimattomien tietojen, kuten kuvien, multimediatiedostojen jne., tallentamiseen ja käsittelemiseen. Oracle pitää parempana LOB-tietotyyppiä LONG-tietotyypin sijaan, koska se on joustavampi kuin LONG-tietotyyppi. Alla on muutamia LOB:n tärkeimpiä etuja LONG-tietotyyppiin verrattuna.

  • LONG-tietotyypin taulukon sarakkeiden lukumäärä on rajoitettu yhteen, kun taas taulukossa ei ole rajoituksia sarakkeiden lukumäärälle, jossa on LOB-tietotyyppi.
  • Tietorajapintatyökalu hyväksyy taulukon LOB-tietotyypin tietojen replikoinnin aikana, mutta jättää pois taulukon LONG-sarakkeen. Nämä LONG-sarakkeet on kopioitava manuaalisesti.
  • LONG-sarakkeen koko on 2 Gt, kun taas LOBiin mahtuu jopa 128 TB.
  • Oracle parantaa jatkuvasti kunkin julkaisunsa LOB-tietotyyppiä nykyaikaisten vaatimusten mukaisesti, kun taas LONG-tietotyyppi on vakio eikä päivityksiä tule paljon.

Joten on aina hyvä käyttää LOB-tietotyyppiä LONG-tietotyypin sijaan. Seuraavassa on eri LOB-tietotyypit. Ne voivat tallentaa jopa 128 teratavun kokoa.

  1. BLOB
  2. CLOB ja NCLOB
  3. BFILE
Tietotyyppi Tuotetiedot Syntaksi
BLOB Tämä tietotyyppi tallentaa LOB-tiedot binääritiedostomuodossa 128 TB:n enimmäiskokoon asti. Tämä ei tallenna merkistöjen yksityiskohtiin perustuvia tietoja, jotta se voi tallentaa strukturoimatonta dataa, kuten multimediaobjekteja, kuvia jne.
Binary_data BLOB;

Syntaksiselitys:

  • Yllä olevassa muuttuja 'Binary_data' on ilmoitettu BLOB:ksi.
CLOB ja NCLOB CLOB-tietotyyppi tallentaa LOB-tiedot merkistöyn, kun taas NCLOB tallentaa tiedot alkuperäiseen merkistöyn. 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 TB.
Charac_data CLOB;

Syntaksiselitys:

  • Yllä olevassa muuttuja 'Charac_data' on ilmoitettu CLOB-tietotyypiksi.
BFILE
  • BFILE ovat tietotyyppejä, jotka tallensivat strukturoimattoman binäärimuodon tiedot tietokannan ulkopuolelle käyttöjärjestelmätiedostona.
  • BFILE:n 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 saatavilla PL / SQL yhdessä niiden syntaksin kanssa. Opimme monimutkaisista tietotyypeistä lisäaiheissa.