Oracle PL/SQL-datatyper: boolsk, tall, dato [eksempel]
Hva er PL/SQL-datatyper?
Datatyper i PL/SQL brukes til รฅ definere hvordan dataene skal lagres, hรฅndteres og behandles av Oracle under lagring og behandling av data. Datatyper er knyttet til det spesifikke lagringsformatet og rekkeviddebegrensningene. I Oracle, hver verdi eller konstant er tilordnet en datatype.
Hovedforskjellen mellom PL/SQL og SQL datatyper er, SQL-datatypen er begrenset til tabellkolonnen mens PL/SQL-datatypene brukes i PL/SQL-blokker. Mer om dette senere i opplรฆringen.
Fรธlgende er diagrammet over forskjellige Oracle PL/SQL-datatyper:

PL/SQL KARAKTER Datatype
Denne datatypen lagrer i utgangspunktet alfanumeriske tegn i strengformat.
De bokstavelige verdiene skal alltid vรฆre omgitt av enkle anfรธrselstegn mens de tilordnes til CHARACTER-datatypen.
Denne karakterdatatypen er videre klassifisert som fรธlger:
- CHAR Datatype (fast strengstรธrrelse)
- VARCHAR2 Datatype (variabel strengstรธrrelse)
- VARCHAR Datatype
- NCHAR (innfรธdt fast strengstรธrrelse)
- NVARCHAR2 (native variabel strengstรธrrelse)
- LANG og LANG Rร
| Data-type | Tekniske beskrivelser | syntax |
|---|---|---|
| CHAR | Denne datatypen lagrer strengverdien, og stรธrrelsen pรฅ strengen er fast pรฅ tidspunktet for deklarering av variabel.
|
grade CHAR; manager CHAR (10):= 'guru99'; Syntaks forklaring:
|
| VARCHAR2 | Denne datatypen lagrer strengen, men lengden pรฅ strengen er ikke fast.
|
manager VARCHAR2(10) := โguru99'; Syntaks forklaring:
|
| VARCHAR | Dette er synonymt med datatypen VARCHAR2.
|
manager VARCHAR(10) := โguru99'; Syntaks forklaring:
|
| NCHAR | Denne datatypen er den samme som CHAR-datatypen, men tegnsettet til det nasjonale tegnsettet.
|
native NCHAR(10); Syntaks forklaring:
|
| NVARCHAR2 |
Denne datatypen er den samme som VARCHAR2-datatypen, men tegnsettet vil vรฆre av det nasjonale tegnsettet.
|
Native var NVARCHAR2(10):='guru99'; Syntaks forklaring:
|
| LANGT og LANGT | Denne datatypen brukes til รฅ lagre stor tekst eller rรฅdata opp til maksimal stรธrrelse pรฅ 2 GB.
|
Large_text LONG; Large_raw LONG RAW; Syntaks forklaring:
OBS: Bruk av LONG datatype anbefales ikke av Oracle. I stedet bรธr LOB-datatypen foretrekkes. |
PL/SQL NUMMER Datatype
Denne datatypen lagrer tall med fast eller flyttall opp til 38 sifre med presisjon. Denne datatypen brukes til รฅ arbeide med felt som kun vil inneholde talldata. Variabelen kan deklareres enten med presisjon og desimalsifferdetaljer eller uten denne informasjonen. Verdier trenger ikke omsluttes av anfรธrselstegn ved tilordning for denne datatypen.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Syntaks forklaring:
- I det ovenstรฅende erklรฆrer den fรธrste erklรฆringen at variabelen 'A' er av talldatatype med total presisjon 8 og desimal 2.
- Den andre erklรฆringen erklรฆrer at variabelen 'B' er av talldatatype med total presisjon 8 og ingen desimal.
- Den tredje erklรฆringen er den mest generiske, og erklรฆrer at variabel 'C' er av talldatatype uten begrensning i presisjon eller desimaler. Det kan ta opptil 38 sifre.
PL/SQL BOOLEAN-datatype
Denne datatypen lagrer de logiske verdiene. Oracle Boolsk datatype representerer enten TRUE eller FALSE og brukes hovedsakelig i betingede utsagn. Verdier trenger ikke omsluttes av anfรธrselstegn ved tilordning for denne datatypen.
Var1 BOOLEAN;
Syntaks forklaring:
- I det ovenstรฅende er variabel 'Var1' erklรฆrt som BOOLEAN datatype. Utdata fra koden vil vรฆre enten sann eller usann basert pรฅ betingelsessettet.
PL/SQL DATO Datatype
Denne datatypen lagrer verdiene i datoformat, som dato, mรฅned og รฅr. Nรฅr en variabel er definert med DATE-datatype sammen med datoen, kan den inneholde tidsinformasjon, og som standard er tidsinformasjon satt til 12:00:00 hvis ikke spesifisert. Verdier mรฅ omsluttes av anfรธrselstegn ved tilordning for denne datatypen.
Standard Oracle tidsformatet for input og output er 'DD-MON-YY' og det er igjen satt til NLS_PARAMETERS (NLS_DATE_FORMAT) pรฅ รธktnivรฅ.
newyear DATE:='01-JAN-2015'; current_date DATE:=SYSDATE;
Syntaks forklaring:
- I det ovenstรฅende er variabel 'nyttรฅr' erklรฆrt som datatype DATO og tildelt verdien 1. januarst, 2015 dato.
- Den andre erklรฆringen erklรฆrer variabelen gjeldende_dato som datatype DATO og tilordnet verdien med gjeldende systemdato.
- Begge disse variablene inneholder tidsinformasjonen.
PL/SQL LOB-datatype
Denne datatypen brukes hovedsakelig til รฅ lagre og manipulere store blokker med ustrukturerte data som bilder, multimediafiler, etc. Oracle foretrekker LOB i stedet for en LONG datatype da den er mer fleksibel enn LONG datatypen. Nedenfor er de fรฅ viktigste fordelene med LOB fremfor LANG datatype.
- Antall kolonner i en tabell med LONG datatype er begrenset til 1, mens en tabell ikke har noen begrensning pรฅ et antall kolonner med LOB datatype.
- Datagrensesnittverktรธyet godtar LOB-datatypen for tabellen under datareplikering, men utelater LONG-kolonnen i tabellen. Disse LANGE kolonnene mรฅ replikeres manuelt.
- Stรธrrelsen pรฅ LONG-kolonnen er 2GB, mens LOB kan lagre opptil 128 TB.
- Oracle forbedrer stadig LOB-datatypen i hver av deres utgivelser i henhold til moderne krav, mens LONG-datatypen er konstant og ikke fรฅr mange oppdateringer.
Sรฅ det er alltid greit รฅ bruke LOB-datatypen i stedet for LONG-datatypen. Fรธlgende er de forskjellige LOB-datatypene. De kan lagre opptil 128 terabyte.
- BLOB
- CLOB og NCLOB
- BFILE
| Data-type | Tekniske beskrivelser | syntax |
|---|---|---|
| BLOB | Denne datatypen lagrer LOB-dataene i det binรฆre filformatet opp til den maksimale stรธrrelsen pรฅ 128 TB. Dette lagrer ikke data basert pรฅ tegnsettdetaljene, slik at det kan lagre ustrukturerte data som multimedieobjekter, bilder osv. |
Binary_data BLOB; Syntaks forklaring:
|
| CLOB og NCLOB | CLOB-datatypen lagrer LOB-dataene i tegnsettet, mens NCLOB lagrer dataene i det opprinnelige tegnsettet. Siden disse datatypene bruker tegnsettbasert lagring, kan disse ikke lagre data som multimedia, bilder osv. som ikke kan settes inn i en tegnstreng. Maksimal stรธrrelse pรฅ disse datatypene er 128 TB. |
Charac_data CLOB; Syntaks forklaring:
|
| BFILE |
|
Sammendrag
Vi har dekket de forskjellige enkle datatypene som er tilgjengelige i PL / SQL sammen med deres syntaks. Vi vil lรฆre om komplekse datatyper i videre emner.
