Oracle PL/SQL-gegevenstypen: Boolean, getal, datum [voorbeeld]
Wat zijn PL/SQL-gegevenstypen?
Gegevenstypen in PL/SQL worden gebruikt om te definiëren hoe de gegevens worden opgeslagen, verwerkt en behandeld Oracle tijdens de gegevensopslag en -verwerking. Gegevenstypen zijn gekoppeld aan het specifieke opslagformaat en bereikbeperkingen. In Oracle, wordt aan elke waarde of constante een gegevenstype toegewezen.
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-blokkenHierover later in de tutorial meer.
Hieronder ziet u het diagram van verschillende Oracle PL/SQL-gegevenstypen:
PL/SQL KARAKTER Gegevenstype
Dit gegevenstype slaat in principe alfanumerieke tekens op in stringformaat.
De letterlijke waarden moeten altijd tussen enkele aanhalingstekens worden geplaatst wanneer ze worden toegewezen aan het gegevenstype CHARACTER.
Dit karaktergegevenstype wordt verder als volgt geclassificeerd:
- CHAR Gegevenstype (vaste tekenreeksgrootte)
- VARCHAR2 Gegevenstype (variabele tekenreeksgrootte)
- VARCHAR Gegevenstype
- NCHAR (native vaste tekenreeksgrootte)
- NVARCHAR2 (native variabele tekenreeksgrootte)
- LANG en LANG RAUW
Data type | Beschrijving | Syntaxis |
---|---|---|
CHAR | Dit gegevenstype slaat de tekenreekswaarde op en de grootte van de tekenreeks ligt vast op het moment dat de tekenreeks wordt gedeclareerd variabele.
|
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 VARCHAR2-gegevenstype.
|
manager VARCHAR(10) := ‘guru99'; Syntaxis uitleg:
|
NCHAR | Dit gegevenstype is hetzelfde als het CHAR-gegevenstype, maar de tekenset is de nationale tekenset.
|
native NCHAR(10); Syntaxis uitleg:
|
NVARCHAR2 |
Dit gegevenstype is hetzelfde als het gegevenstype VARCHAR2, maar de tekenset zal van de nationale tekenset zijn.
|
Native var NVARCHAR2(10):='guru99'; Syntaxis uitleg:
|
LANG en LANG | Dit gegevenstype wordt gebruikt om grote tekst of onbewerkte gegevens op te slaan tot een maximale grootte van 2 GB.
|
Large_text LONG; Large_raw LONG RAW; Syntaxis uitleg:
Opmerking: Het gebruik van het gegevenstype LONG wordt niet aanbevolen door Oracle. In plaats daarvan verdient het LOB-gegevenstype de voorkeur. |
PL/SQL NUMBER Gegevenstype
Dit gegevenstype slaat vaste of drijvende-kommagetallen op tot 38 cijfers nauwkeurig. Dit gegevenstype wordt gebruikt om te werken met velden die alleen numerieke gegevens bevatten. De variabele kan worden gedeclareerd met precisie en decimale cijferdetails of zonder deze informatie. Waarden hoeven niet tussen aanhalingstekens te staan bij het toewijzen voor dit gegevenstype.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Syntaxis uitleg:
- In het bovenstaande declareert de eerste declaratie dat de variabele 'A' van het gegevenstype numeriek is met een totale precisie van 8 en decimalen van 2.
- De tweede declaratie geeft aan dat de variabele 'B' van het gegevenstype numeriek is met een totale precisie van 8 en geen decimalen bevat.
- De derde declaratie is de meest generieke, verklaart variabele 'C' is van het gegevenstype number zonder beperking in precisie of decimalen. Het kan maximaal 38 cijfers bevatten.
PL/SQL BOOLEAN-gegevenstype
Dit gegevenstype slaat de logische waarden op. Oracle Booleaans gegevenstype vertegenwoordigt TRUE of FALSE en wordt voornamelijk gebruikt in voorwaardelijke instructies. Waarden hoeven bij het toewijzen voor dit gegevenstype niet tussen aanhalingstekens te staan.
Var1 BOOLEAN;
Syntaxis uitleg:
- In het bovenstaande wordt variabele 'Var1' gedeclareerd als BOOLEAN-gegevenstype. De uitvoer van de code is waar of onwaar, afhankelijk van de ingestelde voorwaarde.
PL/SQL DATE-gegevenstype
Dit gegevenstype slaat de waarden op in datumnotatie, als datum, maand en jaar. Wanneer een variabele wordt gedefinieerd met het gegevenstype DATE samen met de datum, kan deze tijdinformatie bevatten. Standaard wordt de tijdinformatie ingesteld op 12:00:00 als deze niet is opgegeven. Waarden moeten tussen aanhalingstekens worden geplaatst tijdens het toewijzen voor dit gegevenstype.
De 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 wordt de variabele 'nieuwjaar' gedeclareerd als DATE-gegevenstype en krijgt de waarde 1 januari toegewezenst, datum 2015.
- De tweede declaratie declareert de variabele current_date als gegevenstype DATE en wijst de waarde toe met de huidige systeemdatum.
- Beide variabelen bevatten de tijdinformatie.
PL/SQL LOB-gegevenstype
Dit gegevenstype wordt voornamelijk gebruikt voor het opslaan en manipuleren van grote blokken ongestructureerde gegevens, zoals afbeeldingen, multimediabestanden, enz. Oracle geeft de voorkeur aan LOB in plaats van het gegevenstype LONG, omdat dit flexibeler is dan het gegevenstype LONG. Hieronder vindt u de 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 het aantal kolommen met het gegevenstype LOB.
- Het gegevensinterfacehulpprogramma 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 staan de verschillende LOB-gegevenstypen. Ze kunnen tot een grootte van 128 terabytes opslaan.
- BLOB
- CLOB en NCLOB
- B-BESTAND
Data type | Beschrijving | 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 karaktersetdetails, zodat het de ongestructureerde gegevens kan opslaan, zoals multimedia-objecten, afbeeldingen, enz. |
Binary_data BLOB; Syntaxis uitleg:
|
CLOB en NCLOB | Het CLOB-gegevenstype slaat de LOB-gegevens op in de tekenset, terwijl NCLOB de gegevens opslaat in de eigen tekenset. Omdat deze gegevenstypen gebruik maken van op tekensets 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:
|
B-BESTAND |
|
Samenvatting
We hebben de verschillende eenvoudige gegevenstypen besproken die beschikbaar zijn in PL / SQL samen met hun syntaxis. We zullen in verdere onderwerpen meer leren over complexe gegevenstypen.