Wat zijn PL / SQL-gegevenstypen?
Een gegevenstype is gekoppeld aan het specifieke opslagformaat en bereikbeperkingen. In Oracle wordt aan elke waarde of constante een gegevenstype toegewezen.
In feite definieert het hoe de gegevens worden opgeslagen, behandeld en behandeld door Oracle tijdens de gegevensopslag en -verwerking.
Het belangrijkste verschil tussen PL / SQL- en SQL-gegevenstypen is dat het SQL-gegevenstype beperkt is tot de tabelkolom, terwijl de PL / SQL-gegevenstypen worden gebruikt in de PL / SQL-blokken. Hierover later in de tutorial meer.
Hieronder volgt het diagram van verschillende gegevenstypen in PL / SQL
In deze tutorial leer je-
- KARAKTER Gegevenstype
- NUMBER gegevenstype
- BOOLEAN-gegevenstype
- DATUM Gegevenstype
- LOB-gegevenstype
KARAKTER Gegevenstype:
Dit gegevenstype slaat in feite alfanumerieke tekens op in tekenreeksindeling.
De letterlijke waarden moeten altijd tussen enkele aanhalingstekens staan terwijl ze aan het gegevenstype CHARACTER worden toegewezen.
Dit karaktergegevenstype wordt verder als volgt geclassificeerd:
- CHAR Gegevenstype (vaste tekenreeksgrootte)
- VARCHAR2 Gegevenstype (variabele tekenreeksgrootte)
- VARCHAR Gegevenstype
- NCHAR (native vaste tekenreeksgrootte)
- NVARCHAR2 (tekenreeksgrootte van native variabele)
- LANG en LANG RAUW
Data type | Omschrijving | Syntaxis |
---|---|---|
CHAR | Dit gegevenstype slaat de tekenreekswaarde op en de grootte van de tekenreeks staat vast op het moment dat de variabele wordt gedeclareerd.
|
grade CHAR;manager CHAR (10):= 'guru99';Syntaxis Uitleg:
|
VARCHAR2 | Dit gegevenstype slaat de string op, maar de lengte van de string staat niet vast.
|
manager VARCHAR2(10) := ‘guru99';Syntaxis Uitleg:
|
VARCHAR | Dit is synoniem met het gegevenstype VARCHAR2.
|
manager VARCHAR(10) := ‘guru99';Syntaxis Uitleg:
|
NCHAR | Dit gegevenstype is hetzelfde als het CHAR-gegevenstype, maar de karakterset zal van de nationale karakterset zijn.
|
native NCHAR(10);Syntaxis Uitleg:
|
NVARCHAR2 | Dit gegevenstype is hetzelfde als het gegevenstype VARCHAR2, maar de tekenset is van de nationale tekenset.
|
Native var NVARCHAR2(10):='guru99';Syntaxis Uitleg:
|
LANG en LANG | Dit gegevenstype wordt gebruikt om grote tekst of onbewerkte gegevens op te slaan tot de maximale grootte van 2 GB.
|
Large_text LONG;Large_raw LONG RAW;Syntaxis Uitleg:
|
NUMBER gegevenstype:
Dit gegevenstype slaat vaste of drijvende-kommagetallen op met een precisie van maximaal 38 cijfers. Dit gegevenstype wordt gebruikt om te werken met velden die alleen cijfergegevens bevatten. De variabele kan worden gedeclareerd met precisie en decimale cijferdetails of zonder deze informatie. Waarden hoeven niet tussen aanhalingstekens te worden geplaatst bij het toewijzen aan dit gegevenstype.
A NUMBER(8,2);B NUMBER(8);C NUMBER;
Syntaxis Uitleg:
- In het bovenstaande verklaart de eerste declaratie dat de variabele 'A' van het gegevenstype getallen is met een totale precisie van 8 en decimale cijfers 2.
- De tweede declaratie verklaart dat de variabele 'B' van het gegevenstype getallen is met een totale precisie van 8 en geen decimale cijfers.
- De derde declaratie is de meest algemene, declareert variabele 'C' van het gegevenstype getallen zonder beperking in precisie of decimalen. Het kan maximaal 38 cijfers duren.
BOOLEAN-gegevenstype:
Dit gegevenstype slaat de logische waarden op. Het vertegenwoordigt WAAR of ONWAAR en wordt voornamelijk gebruikt in voorwaardelijke instructies. Waarden hoeven niet tussen aanhalingstekens te worden geplaatst bij het toewijzen aan dit gegevenstype.
Var1 BOOLEAN;
Syntaxis Uitleg:
- In het bovenstaande wordt variabele 'Var1' gedeclareerd als BOOLEAN-gegevenstype. De uitvoer van de code zal waar of onwaar zijn op basis van de gestelde voorwaarden.
DATUM Gegevenstype:
Dit gegevenstype slaat de waarden op in datumnotatie, als datum, maand en jaar. Telkens wanneer een variabele wordt gedefinieerd met het gegevenstype DATE samen met de datum, kan deze tijdinformatie bevatten en standaard wordt de tijdinformatie ingesteld op 12:00:00 als deze niet wordt gespecificeerd. Waarden moeten tussen aanhalingstekens worden geplaatst tijdens het toewijzen aan dit gegevenstype.
Het standaard Oracle-tijdformaat voor invoer en uitvoer is 'DD-MON-YY' en wordt opnieuw ingesteld op NLS_PARAMETERS (NLS_DATE_FORMAT) op sessieniveau.
newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;
Syntaxis Uitleg:
- In het bovenstaande variabele 'nieuwjaar' wordt verklaard als type DATE data en de waarde van 1 januari toegekend st 2015 datum.
- De tweede declaratie declareert de variabele current_date als DATE-gegevenstype en kent de waarde toe met de huidige systeemdatum.
- Beide variabelen bevatten de tijdinformatie.
LOB-gegevenstype:
Dit gegevenstype wordt voornamelijk gebruikt om grote blokken ongestructureerde gegevens zoals afbeeldingen, multimediabestanden, enz. Op te slaan en te manipuleren. Oracle geeft de voorkeur aan LOB in plaats van het gegevenstype LONG omdat het flexibeler is dan het gegevenstype LONG. De onderstaande zijn de weinige belangrijkste voordelen van LOB ten opzichte van het LONG-gegevenstype.
- Het aantal kolommen in een tabel met het gegevenstype LONG is beperkt tot 1, terwijl een tabel geen beperking kent voor een aantal kolommen met het gegevenstype LOB.
- De gegevensinterfacetool accepteert het LOB-gegevenstype van de tabel tijdens gegevensreplicatie, maar laat de LONG-kolom van de tabel weg. Deze LONG-kolommen moeten handmatig worden gerepliceerd.
- De grootte van de LONG-kolom is 2 GB, terwijl LOB maximaal 128 TB kan opslaan.
- Oracle verbetert voortdurend het LOB-gegevenstype in elk van hun releases volgens de moderne vereisten, terwijl het LONG-gegevenstype constant is en niet veel updates krijgt.
Het is dus altijd goed om het LOB-gegevenstype te gebruiken in plaats van het LONG-gegevenstype. Hieronder volgen de verschillende LOB-gegevenstypen. Ze kunnen maximaal 128 terabyte opslaan.
- BLOB
- CLOB en NCLOB
- BFILE
Data type | Omschrijving | Syntaxis |
---|---|---|
BLOB |
Dit gegevenstype slaat de LOB-gegevens op in het binaire bestandsformaat tot de maximale grootte van 128 TB. Dit slaat geen gegevens op op basis van de details van de tekenset, zodat het de ongestructureerde gegevens kan opslaan zoals multimedia-objecten, afbeeldingen, enz. |
Binary_data BLOB; Syntaxis Uitleg:
|
CLOB en NCLOB |
CLOB-gegevenstype slaat de LOB-gegevens op in de tekenset, terwijl NCLOB de gegevens opslaat in de oorspronkelijke tekenset. Aangezien deze gegevenstypen gebruikmaken van op tekenset gebaseerde opslag, kunnen deze geen gegevens opslaan zoals multimedia, afbeeldingen, enz. Die niet in een tekenreeks kunnen worden geplaatst. De maximale grootte van deze gegevenstypen is 128 TB. |
Charac_data CLOB; Syntaxis Uitleg:
|
BFILE |
|
Overzicht
We hebben de verschillende eenvoudige gegevenstypen behandeld die beschikbaar zijn in PL / SQL, samen met hun syntaxis. In andere onderwerpen zullen we meer te weten komen over complexe gegevenstypen.