Hvad er PL / SQL-datatyper?
En datatype er knyttet til det specifikke lagerformat og rækkevidde. I Oracle tildeles hver værdi eller konstant en datatype.
Dybest set definerer det, hvordan dataene lagres, håndteres og behandles af Oracle under datalagring og -behandling.
Den største forskel mellem PL / SQL- og SQL-datatyper er, SQL-datatypen er begrænset til tabelkolonne, mens PL / SQL-datatyperne bruges i PL / SQL-blokke. Mere om dette senere i vejledningen.
Følgende er diagrammet med forskellige datatyper i PL / SQL
I denne vejledning lærer du-
- KARAKTER Datatype
- NUMBER Datatype
- BOOLEAN Datatype
- DATE Datatype
- LOB-datatype
KARAKTER Datatype:
Denne datatype gemmer grundlæggende alfanumeriske tegn i strengformat.
De bogstavelige værdier skal altid være anbragt i enkelte anførselstegn, mens de tildeles til CHARACTER-datatypen.
Denne karakterdatatype klassificeres yderligere som følger:
- CHAR Datatype (fast strengstørrelse)
- VARCHAR2 Datatype (variabel strengstørrelse)
- VARCHAR Datatype
- NCHAR (oprindelig fast strengstørrelse)
- NVARCHAR2 (native variabel strengstørrelse)
- LANG og LANG RÅ
Datatype | Beskrivelse | Syntaks |
---|---|---|
CHAR | Denne datatype gemmer strengværdien, og strengens størrelse er fast på tidspunktet for deklarering af variablen.
|
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 er af det nationale tegnsæt.
|
Native var NVARCHAR2(10):='guru99';Syntaks Forklaring:
|
LANG og LANGRAV | 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:
|
NUMBER Datatype:
Denne datatype gemmer faste eller flydende numre op til 38 cifre præcision. Denne datatype bruges til at arbejde med felter, der kun indeholder taldata. Variablen kan deklareres enten med præcision og decimaltal eller uden disse oplysninger. Værdier behøver ikke at være indeholdt i anførselstegn, mens de tildeles til 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 datatype med total nøjagtighed 8 og decimalcifre 2.
- Den anden erklæring erklærer, at variablen 'B' er af datatype med total nøjagtighed 8 og ingen decimal cifre.
- Den tredje erklæring er den mest generiske, erklærer variabel 'C' er af datatype uden begrænsning i præcision eller decimaler. Det kan maksimalt tage 38 cifre.
BOOLEAN Datatype:
Denne datatype gemmer de logiske værdier. Det repræsenterer enten SAND eller FALSK og bruges hovedsageligt i betingede udsagn. Værdier behøver ikke at være indeholdt i anførselstegn, mens de tildeles til denne datatype.
Var1 BOOLEAN;
Syntaks Forklaring:
- I ovenstående erklæres variabel 'Var1' som BOOLEAN-datatype. Kodens output vil enten være sand eller falsk baseret på den indstillede betingelse.
DATE Datatype:
Denne datatype gemmer værdierne i datoformat som dato, måned og år. Hver gang en variabel er defineret med DATE-datatypen sammen med datoen, kan den indeholde tidsoplysninger, og som standard er tidsoplysninger indstillet til 12:00:00, hvis de ikke er specificeret. Værdier skal vedlægges inden for anførselstegn, mens de tildeles til denne datatype.
Standard Oracle-tidsformatet for input og output er 'DD-MON-YY', og det er igen indstillet til NLS_PARAMETERS (NLS_DATE_FORMAT) på sessionsniveau.
newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;
Syntaks Forklaring:
- I ovenstående, variabel 'nytår' er erklæret som DATE datatype og tildeles værdien af Jan 1 st , 2015 dato.
- Den anden erklæring erklærer variablen current_date som DATE-datatype og tildelte værdien med den aktuelle systemdato.
- Begge disse variabler indeholder tidsinformation.
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 a LONG-datatypen, da den er mere fleksibel end LONG-datatypen. Nedenfor er de få største fordele ved LOB i forhold til LONG datatype.
- Antallet af kolonner i en tabel med LONG-datatype er begrænset til 1, hvorimod en tabel ikke har nogen begrænsning for et antal kolonner med LOB-datatype.
- Datainterfaceværktøjet accepterer LOB-datatypen for tabellen under datareplikering, men den udelader LONG-kolonnen i tabellen. Disse LANGE kolonner skal replikeres manuelt.
- Størrelsen på LONG-kolonnen er 2 GB, mens LOB kan gemme op til 128 TB.
- Oracle forbedrer konstant LOB-datatypen i hver af deres udgivelser i henhold til det moderne krav, mens LONG-datatypen er konstant og ikke får mange opdateringer.
Så det er altid godt at bruge LOB-datatype i stedet for LONG-datatypen. Følgende er de forskellige LOB-datatyper. De kan gemme op til 128 terabyte.
- BLOB
- CLOB og NCLOB
- BFIL
Datatype | Beskrivelse | Syntaks |
---|---|---|
BLOB |
Denne datatype gemmer LOB-data i det binære filformat op til den maksimale størrelse på 128 TB. Dette gemmer ikke data baseret på tegnsætdetaljerne, 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, mens NCLOB gemmer dataene i det oprindelige tegnsæt. Da disse datatyper bruger tegnsætbaseret lagring, kan disse ikke gemme data som multimedie, billeder osv., Der ikke kan placeres i en tegnstreng. Den maksimale størrelse på disse datatyper er 128 TB. |
Charac_data CLOB; Syntaks Forklaring:
|
BFIL |
|
Resumé
Vi har dækket de forskellige enkle datatyper, der er tilgængelige i PL / SQL sammen med deres syntaks. Vi lærer om komplekse datatyper i yderligere emner.