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.
|
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 siseriikliku märgistiku tähemärk jääb samaks.
|
native NCHAR(10);Süntaksi selgitus:
|
NVARCHAR2 | See andmetüüp on sama mis VARCHAR2 andmetüüp, kuid tähemärkide komplekt on riiklik märgistik.
|
Native var NVARCHAR2(10):='guru99';Süntaksi selgitus:
|
PIKA ja PIKA | Seda andmetüüpi kasutatakse suurte teksti- või algandmete salvestamiseks kuni maksimaalselt 2 GB.
|
Large_text LONG;Large_raw LONG RAW;Süntaksi selgitus:
|
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.
- MÄNG
- CLOB ja NCLOB
- 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:
|
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:
|
BFILE |
|
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.