Oracle PL/SQL-i andmetüübid: tõeväärtus, arv, kuupäev [näide]
Mis on PL/SQL andmetüübid?
Andmetüübid PL/SQL-is kasutatakse määramaks, kuidas andmeid salvestatakse, käsitletakse ja töödeldakse Oracle andmete salvestamise ja töötlemise ajal. Andmetüübid on seotud konkreetse salvestusvormingu ja vahemiku piirangutega. sisse Oracle, on igale väärtusele või konstandile määratud andmetüüp.
Peamine erinevus PL/SQL ja SQL andmetüübid on, SQL-i andmetüüp on piiratud tabeli veeruga, samas kui PL/SQL-i andmetüüpe kasutatakse PL/SQL plokid. Lisateavet selle kohta hiljem õpetuses.
Järgnev on diagramm erinevatest Oracle PL/SQL andmetüübid:
PL/SQL-MÄRK Andmetüüp
See andmetüüp salvestab põhiliselt tähtnumbrilisi märke stringivormingus.
Literaalväärtused tuleks alati lisada jutumärkidesse, määrates need andmetüübile CHARACTER.
Seda märgi andmetüüpi klassifitseeritakse veel järgmiselt:
- CHAR Andmetüüp (fikseeritud stringi suurus)
- VARCHAR2 Andmetüüp (muutuv stringi suurus)
- VARCHAR Andmetüüp
- NCHAR (natiivne fikseeritud stringi suurus)
- NVARCHAR2 (omamuutuja stringi suurus)
- LONG ja LONG TOOR
Andmetüüp | Kirjeldus | Süntaks |
---|---|---|
PAAK | See andmetüüp salvestab stringi väärtuse ja stringi suurus on fikseeritud deklareerimise ajal muutuja.
|
grade CHAR; manager CHAR (10):= 'guru99'; Süntaksi selgitus:
|
VARCHAR2 | See andmetüüp salvestab stringi, kuid stringi pikkus pole fikseeritud.
|
manager VARCHAR2(10) := ‘guru99'; Süntaksi selgitus:
|
VARCHAR | See on VARCHAR2 andmetüübi sünonüüm.
|
manager VARCHAR(10) := ‘guru99'; Süntaksi selgitus:
|
NCHAR | See andmetüüp on sama mis CHAR andmetüüp, kuid riikliku märgistiku märgistik.
|
native NCHAR(10); Süntaksi selgitus:
|
NVARCHAR2 |
See andmetüüp on sama mis VARCHAR2 andmetüüp, kuid märgistik on riiklikust märgistikust.
|
Native var NVARCHAR2(10):='guru99'; Süntaksi selgitus:
|
LONG ja LONGRAW | Seda andmetüüpi kasutatakse suure teksti või töötlemata andmete salvestamiseks maksimaalselt 2 GB.
|
Large_text LONG; Large_raw LONG RAW; Süntaksi selgitus:
Märge: LONG andmetüüpi ei soovita kasutada Oracle. Selle asemel tuleks eelistada LOB-i andmetüüpi. |
PL/SQL NUMBER Andmetüüp
See andmetüüp salvestab fikseeritud või ujukomaga numbreid kuni 38-kohalise täpsusega. Seda andmetüüpi kasutatakse väljadega, mis sisaldavad ainult numbriandmeid, töötamiseks. Muutuja saab deklareerida kas täppis- ja kümnendkohaandmetega või ilma selle teabeta. Selle andmetüübi määramisel ei pea väärtused olema jutumärkides.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Süntaksi selgitus:
- Ülaltoodu puhul deklareerib esimene deklaratsioon, et muutuja A on arvandmetüüpi, mille täielik täpsus on 8 ja kümnendkohad 2.
- Teine deklaratsioon deklareerib, et muutuja B on numbriandmete tüüpi, mille täielik täpsus on 8 ja ilma kümnendkohata.
- Kolmas deklaratsioon on kõige üldisem, deklareerib, et muutuja C on numbriandmete tüüpi, ilma täpsuse või kümnendkohtade piiranguteta. See võib kesta kuni 38 numbrit.
PL/SQL BOOLEAN andmetüüp
See andmetüüp salvestab loogilised väärtused. Oracle Boole'i andmetüüp tähistab kas TRUE või FALSE ja seda kasutatakse peamiselt tingimuslausetes. Selle andmetüübi määramisel ei pea väärtused olema jutumärkides.
Var1 BOOLEAN;
Süntaksi selgitus:
- Ülaltoodu puhul on muutuja 'Var1' deklareeritud BOOLEAN-i andmetüübina. Tingimuste komplekti alusel on koodi väljund kas tõene või väär.
PL/SQL DATE andmetüüp
See andmetüüp salvestab väärtused kuupäevavormingus kuupäeva, kuu ja aasta kujul. Kui muutuja on määratletud andmetüübiga DATE koos kuupäevaga, võib see sisaldada ajateavet ja vaikimisi määratakse ajateabe väärtuseks 12:00:00, kui seda pole määratud. Selle andmetüübi määramisel peavad väärtused olema jutumärkides.
Standard Oracle sisendi ja väljundi ajavorming on 'DD-MON-YY' ja see on taas määratud seansi tasemel NLS_PARAMETERS (NLS_DATE_FORMAT).
newyear DATE:='01-JAN-2015'; current_date DATE:=SYSDATE;
Süntaksi selgitus:
- Eespool on muutuja 'newyear' deklareeritud andmetüübina DATE ja sellele omistatakse 1. jaanuar.st, kuupäev 2015.
- Teine deklaratsioon deklareerib muutuja current_date andmetüübina DATE ja omistab väärtusele praeguse süsteemi kuupäeva.
- Mõlemad muutujad sisaldavad ajateavet.
PL/SQL LOB-i andmetüüp
Seda andmetüüpi kasutatakse peamiselt suurte struktureerimata andmeplokkide, näiteks piltide, multimeediumifailide jne salvestamiseks ja töötlemiseks. Oracle eelistab LOB-i andmetüübi LONG asemel, kuna see on paindlikum kui andmetüüp LONG. Allpool on mõned LOB-i peamised eelised LONG-i andmetüübi ees.
- LONG andmetüübiga tabeli veergude arv on piiratud 1-ga, samas kui LOB-andmetüübiga tabelis pole piiranguid.
- Andmeliidese tööriist aktsepteerib andmete replikatsiooni ajal tabeli LOB-andmetüüpi, kuid jätab tabeli veeru LONG välja. Neid PIKKID veerge tuleb käsitsi kopeerida.
- LONG veeru suurus on 2 GB, samas kui LOB mahutab kuni 128 TB.
- Oracle täiustab pidevalt LOB-i andmetüüpi kõigis oma väljaannetes vastavalt kaasaegsetele nõuetele, samas kui LONG-andmetüüp on konstantne ega saa palju värskendusi.
Seega on alati hea andmetüübi LONG asemel kasutada andmetüüpi LOB. Järgnevalt on toodud erinevad LOB-i andmetüübid. Need võivad salvestada kuni 128 terabaiti.
- MÄNG
- CLOB ja NCLOB
- BFILE
Andmetüüp | Kirjeldus | Süntaks |
---|---|---|
MÄNG | See andmetüüp salvestab LOB-andmed binaarfailivormingus kuni 128 TB. See ei salvesta andmeid märgistiku üksikasjade põhjal, et saaks salvestada struktureerimata andmeid, nagu multimeediumobjektid, pildid jne. |
Binary_data BLOB; Süntaksi selgitus:
|
CLOB ja NCLOB | Andmetüüp CLOB salvestab LOB-andmed märgikomplekti, samas kui NCLOB salvestab andmed algsesse märgikomplekti. Kuna need andmetüübid kasutavad märgistikupõhist salvestusruumi, ei saa need salvestada andmeid, nagu multimeedium, pildid jne, mida ei saa märgistringi panna. Nende andmetüüpide maksimaalne suurus on 128 TB. |
Charac_data CLOB; Süntaksi selgitus:
|
BFILE |
|
kokkuvõte
Oleme käsitlenud erinevaid lihtsaid andmetüüpe, mis on saadaval PL / SQL koos nende süntaksiga. Keeruliste andmetüüpide kohta õpime edasistes teemades.