Oracle PL/SQL-datatyper: Boolean, tal, dato [eksempel]
Hvad er PL/SQL-datatyper?
Datatyper i PL/SQL bruges til at definere, hvordan data skal opbevares, hรฅndteres og behandles af Oracle under datalagring og -behandling. Datatyper er knyttet til det specifikke lagerformat og rรฆkkeviddebegrรฆnsninger. I Oracle, hver vรฆrdi eller konstant er tildelt en datatype.
Den stรธrste forskel mellem PL/SQL og SQL datatyper er, SQL-datatypen er begrรฆnset til tabelkolonnen, mens PL/SQL-datatyperne bruges i PL/SQL blokke. Mere om dette senere i selvstudiet.
Fรธlgende er diagrammet over forskellige Oracle PL/SQL-datatyper:

PL/SQL KARAKTER Datatype
Denne datatype gemmer grundlรฆggende alfanumeriske tegn i strengformat.
De bogstavelige vรฆrdier skal altid vรฆre omgivet af enkelte anfรธrselstegn, mens de tildeles til CHARACTER-datatypen.
Denne karakterdatatype er yderligere klassificeret som fรธlger:
- CHAR Datatype (fast strengstรธrrelse)
- VARCHAR2 Datatype (variabel strengstรธrrelse)
- VARCHAR Datatype
- NCHAR (native fast streng stรธrrelse)
- NVARCHAR2 (native variabel strengstรธrrelse)
- LANG og LANG Rร
| Datatype | Beskrivelse | Syntaks |
|---|---|---|
| CHAR | Denne datatype gemmer strengvรฆrdien, og stรธrrelsen af โโstrengen er fastsat pรฅ tidspunktet for erklรฆringen af variabel.
|
grade CHAR; manager CHAR (10):= 'guru99'; Syntaks forklaring:
|
| VARCHAR2 | Denne datatype gemmer strengen, men lรฆngden af โโstrengen er ikke fast.
|
manager VARCHAR2(10) := โguru99'; Syntaks forklaring:
|
| VARCHAR | Dette er synonymt med VARCHAR2-datatypen.
|
manager VARCHAR(10) := โguru99'; Syntaks forklaring:
|
| NCHAR | Denne datatype er den samme som CHAR-datatypen, men tegnsรฆttet vil for det nationale tegnsรฆt.
|
native NCHAR(10); Syntaks forklaring:
|
| NVARCHAR2 |
Denne datatype er den samme som VARCHAR2-datatypen, men tegnsรฆttet vil vรฆre af det nationale tegnsรฆt.
|
Native var NVARCHAR2(10):='guru99'; Syntaks forklaring:
|
| LANG og LANG | Denne datatype bruges til at gemme stor tekst eller rรฅ data op til den maksimale stรธrrelse pรฅ 2 GB.
|
Large_text LONG; Large_raw LONG RAW; Syntaks forklaring:
Bemรฆrk: Brug af LONG datatype anbefales ikke af Oracle. I stedet bรธr LOB-datatypen foretrรฆkkes. |
PL/SQL NUMMER Datatype
Denne datatype gemmer faste eller flydende kommanumre op til 38 cifre med prรฆcision. Denne datatype bruges til at arbejde med felter, som kun vil indeholde taldata. Variablen kan deklareres enten med prรฆcision og decimaltalsdetaljer eller uden denne information. Vรฆrdier behรธver ikke at vรฆre omgivet af anfรธrselstegn ved tildeling for denne datatype.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Syntaks forklaring:
- I ovenstรฅende erklรฆrer den fรธrste erklรฆring, at variablen 'A' er af taldatatype med total prรฆcision 8 og decimaltal 2.
- Den anden erklรฆring erklรฆrer, at variablen 'B' er af taldatatype med total prรฆcision 8 og ingen decimalcifre.
- Den tredje erklรฆring er den mest generiske, erklรฆrer, at variabel 'C' er af taldatatype uden begrรฆnsning i prรฆcision eller decimaler. Det kan maksimalt tage 38 cifre.
PL/SQL BOOLEAN Datatype
Denne datatype gemmer de logiske vรฆrdier. Oracle Boolesk datatype reprรฆsenterer enten SAND eller FALSK og bruges hovedsageligt i betingede udsagn. Vรฆrdier behรธver ikke at vรฆre omgivet af anfรธrselstegn ved tildeling for denne datatype.
Var1 BOOLEAN;
Syntaks forklaring:
- I ovenstรฅende er variabel 'Var1' erklรฆret som BOOLEAN datatype. Udgangen af โโkoden vil vรฆre enten sand eller falsk baseret pรฅ betingelsessรฆttet.
PL/SQL DATO Datatype
Denne datatype gemmer vรฆrdierne i datoformat, som dato, mรฅned og รฅr. Nรฅr en variabel er defineret med DATE-datatypen sammen med datoen, kan den indeholde tidsinformation, og som standard er tidsinformation sat til 12:00:00, hvis den ikke er angivet. Vรฆrdier skal omsluttes af anfรธrselstegn, mens der tildeles for denne datatype.
Standarden Oracle tidsformatet for input og output er 'DD-MON-YY' og det er igen sat til NLS_PARAMETERS (NLS_DATE_FORMAT) pรฅ sessionsniveau.
newyear DATE:='01-JAN-2015'; current_date DATE:=SYSDATE;
Syntaks forklaring:
- I ovenstรฅende er variabel 'nytรฅr' erklรฆret som DATE-datatype og tildelt vรฆrdien 1. januarst, 2015 dato.
- Den anden erklรฆring erklรฆrer variablen aktuel_dato som DATE-datatype og tildelt vรฆrdien med aktuel systemdato.
- Begge disse variable holder tidsinformationen.
PL/SQL LOB-datatype
Denne datatype bruges hovedsageligt til at gemme og manipulere store blokke af ustrukturerede data som billeder, multimediefiler osv. Oracle foretrรฆkker LOB i stedet for en LONG datatype, da den er mere fleksibel end LONG datatypen. Nedenstรฅende er de fรฅ stรธrste fordele ved LOB frem for LANG datatype.
- Antallet af kolonner i en tabel med LONG datatype er begrรฆnset til 1, hvorimod en tabel ikke har nogen begrรฆnsning pรฅ et antal kolonner med LOB datatype.
- Datagrรฆnsefladevรฆrktรธjet accepterer LOB-datatypen for tabellen under datareplikering, men det udelader LONG-kolonnen i tabellen. Disse LANGE kolonner skal replikeres manuelt.
- Stรธrrelsen pรฅ LONG-sรธjlen er 2GB, hvorimod LOB kan gemme op til 128 TB.
- Oracle forbedrer konstant LOB-datatypen i hver af deres udgivelser i henhold til det moderne krav, hvorimod LONG datatypen er konstant og ikke fรฅr mange opdateringer.
Sรฅ det er altid godt at bruge LOB-datatypen i stedet for LONG-datatypen. Fรธlgende er de forskellige LOB-datatyper. De kan gemme op til stรธrrelsen pรฅ 128 terabyte.
- Blob
- CLOB og NCLOB
- BFIL
| Datatype | Beskrivelse | Syntaks |
|---|---|---|
| Blob | Denne datatype gemmer LOB-dataene i det binรฆre filformat op til den maksimale stรธrrelse pรฅ 128 TB. Dette gemmer ikke data baseret pรฅ tegnsรฆttets detaljer, sรฅ det kan gemme de ustrukturerede data sรฅsom multimedieobjekter, billeder osv. |
Binary_data BLOB; Syntaks forklaring:
|
| CLOB og NCLOB | CLOB-datatypen gemmer LOB-dataene i tegnsรฆttet, hvorimod NCLOB gemmer dataene i det oprindelige tegnsรฆt. Da disse datatyper bruger tegnsรฆtbaseret lagring, kan disse ikke gemme data som multimedier, billeder osv., der ikke kan sรฆttes i en tegnstreng. Den maksimale stรธrrelse af disse datatyper er 128 TB. |
Charac_data CLOB; Syntaks forklaring:
|
| BFIL |
|
Resumรฉ
Vi har dรฆkket de forskellige simple datatyper, der er tilgรฆngelige i PL / SQL sammen med deres syntaks. Vi vil lรฆre om komplekse datatyper i yderligere emner.
