Oracle PL/SQL-tietotyypit: Boolen arvo, numero, päivämäärä [esimerkki]
⚡ Älykäs yhteenveto
PL/SQL-tietotyypit määrittelevät, miten Oracle tallentaa, käsittelee ja rajoittaa lohkon jokaisen arvon. Ne ryhmittyvät merkki-, numero-, totuusarvo-, päivämäärä- ja suurten objektien (LOB) perheisiin, joilla jokaisella on oma tallennusmuotonsa, kokorajoituksensa ja määrityssääntönsä.

Mitä ovat PL/SQL-tietotyypit?
Tietotyypit PL/SQL:ssä määritellään, miten data tallennetaan, käsitellään ja prosessoidaan Oracle tallennuksen ja käsittelyn aikana. Tietotyypit liittyvät tiettyyn tallennusmuotoon ja aluerajoituksiin. Oracle, jokaiselle arvolle tai vakiolle on määritetty tietotyyppi.
Suurin ero PL/SQL:n ja SQL tietotyypit on, että SQL-tietotyypit rajoittuvat taulukon sarakkeisiin, 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 CHARACTER Tietotyyppi
Tämä tietotyyppi tallentaa aakkosnumeerisia merkkejä merkkijonomuodossa. Kirjaimelliset arvot tulee aina laittaa lainausmerkkeihin, kun ne liitetään CHARACTER-tietotyyppiin.
Tämä merkkitietotyyppi luokitellaan edelleen seuraavasti:
- CHAR-tietotyyppi (kiinteä merkkijonon koko)
- VARCHAR2-tietotyyppi (muuttuva merkkijonon koko)
- 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ä arvon määrittelyn yhteydessä. muuttuja.
|
grade CHAR; manager CHAR (10):= 'guru99'; Syntaksiselitys:
|
| VARCHAR2 | Tämä tietotyyppi tallentaa merkkijonon, mutta sen pituus ei ole kiinteä.
|
manager VARCHAR2(10) := 'guru99'; Syntaksiselitys:
|
| VARCHAR | Tämä on synonyymi VARCHAR2-tietotyypille.
|
manager VARCHAR(10) := 'guru99'; Syntaksiselitys:
|
| NCHAR | Tämä tietotyyppi on sama kuin CHAR, mutta merkistö on kansallinen merkistö.
|
native NCHAR(10);
Syntaksiselitys:
|
| NVARCHAR2 | Tämä tietotyyppi on sama kuin VARCHAR2, mutta merkistö on kansallinen merkistö.
|
Native_var NVARCHAR2(10):= 'guru99'; Syntaksiselitys:
|
| PITKÄ ja PITKÄ RAW | Tämä tietotyyppi tallentaa suuria teksti- tai raakatietoja, joiden enimmäiskoko on 2 Gt.
|
Large_text LONG; Large_raw LONG RAW; Syntaksiselitys:
Huomautus: LONG-tietotyypin käyttöä ei suositella OracleLOB-tietotyyppiä tulisi suosia. |
PL/SQL NUMERO Tietotyyppi
Tämä tietotyyppi tallentaa kiinteitä tai liukulukuja enintään 38 numeron tarkkuudella. Sitä käytetään työskentelemään kenttien kanssa, jotka sisältävät vain numerotietoja. Muuttuja voidaan deklaroida joko tarkkuudella ja desimaalilukutiedoilla tai ilman niitä. Arvoja ei tarvitse laittaa lainausmerkkeihin, kun ne annetaan.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Syntaksiselitys:
- Ensimmäisessä deklaraatiossa määritetään muuttuja 'A', jonka tietotyyppi on numero, kokonaistarkkuudella 8 ja 2 desimaalia.
- Toinen määrittää luvun 'B', jonka tietotyyppi on numero, kokonaistarkkuudella 8 ja ilman desimaalilukuja.
- Kolmas on yleisin, ja se määrittelee numerotietotyypin 'C' ilman tarkkuus- tai desimaalirajoituksia. Se voi sisältää jopa 38 numeroa.
PL/SQL BOOLEAN-tietotyyppi
Tämä tietotyyppi tallentaa loogisia arvoja. Oracle Totuusarvoinen tietotyyppi edustaa joko TOSI- tai EPÄTOSI-arvoa ja sitä käytetään pääasiassa ehdollisissa lauseissa. Arvoja ei tarvitse laittaa lainausmerkkeihin, kun ne on määritetty.
Var1 BOOLEAN;
Syntaksiselitys:
- Muuttuja 'Var1' on määritelty BOOLEAN-tietotyypiksi. Tuloste on joko true tai false asetetusta ehdosta riippuen.
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ääritelty DATE-tietotyypillä, se voi sisältää aikatietoja; oletusarvoisesti aika asetetaan arvoon 12:00:00, jos sitä ei ole määritetty. Arvot on kirjoitettava lainausmerkkeihin, kun ne annetaan.
Standardi Oracle Tulon ja lähdön aikamuoto on 'PP-MA-VV', joka asetetaan NLS_PARAMETERS (NLS_DATE_FORMAT) -parametrissa istuntotasolla.
newyear DATE:= '01-JAN-2015'; current_date DATE:= SYSDATE;
Syntaksiselitys:
- Muuttuja 'newyear' on deklaroitu DATE-tietotyypiksi ja sille on annettu arvo 1. tammikuuta 2015.
- Toinen määrittely määrittää 'current_date'-date-tietotyypiksi ja määrittää sille nykyisen järjestelmäpäivämäärän.
- Molemmat muuttujat sisältävät aikatietoa.
PL/SQL LOB-tietotyyppi
Tätä tietotyyppiä käytetään pääasiassa suurten, rakenteettomien tietolohkojen, kuten kuvien ja multimediatiedostojen, tallentamiseen ja käsittelyyn. Oracle suosii LOB-tietotyyppiä LONG-tietotyyppiin verrattuna, koska se on joustavampi. LOB:n tärkeimmät edut LONG-tietotyyppiin verrattuna ovat:
- Taulukko on rajoitettu yhteen LONG-sarakkeeseen, kun taas LOB-sarakkeiden määrää ei ole rajoitettu.
- Tietorajapintatyökalut hyväksyvät LOB-sarakkeet replikoinnin aikana, mutta jättävät pois LONG-sarakkeet, jotka on replikoitava manuaalisesti.
- LONG-sarake voi tallentaa jopa 2 Gt, kun taas LOB-sarake voi tallentaa jopa 128 Tt.
- Oracle parantelee LOB-tietotyyppiä jatkuvasti jokaisessa julkaisussa, kun taas LONG on pysynyt suurelta osin muuttumattomana.
Joten on aina hyvä käyttää LOB-tietotyyppiä LONG-tietotyypin sijaan. Alla olevat eri LOB-tietotyypit voivat tallentaa jopa 128 teratavua:
- BLOB
- CLOB ja NCLOB
- BFILE
| Tietotyyppi | Tuotetiedot | Syntaksi |
|---|---|---|
| BLOB | Tämä tietotyyppi tallentaa LOB-tietoja binääritiedostomuodossa enintään 128 teratavua. Se ei tallenna tietoja merkistötietojen perusteella, joten se voi tallentaa jäsentämättömiä tietoja, kuten multimediaobjekteja ja kuvia. |
Binary_data BLOB;
Syntaksiselitys:
|
| CLOB ja NCLOB | CLOB tallentaa LOB-tiedot merkistöön, kun taas NCLOB tallentaa tiedot natiiviin merkistöön. Koska nämä käyttävät merkistöön perustuvaa tallennusta, ne eivät voi tallentaa tietoja, kuten multimediaa tai kuvia. Suurin koko on 128 Tt. |
Charac_data CLOB;
Syntaksiselitys:
|
| BFILE |
|
