Oracle PL / SQL-datatyper: boolsk, antal, dato (eksempel)

Indholdsfortegnelse:

Anonim

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.
  • Oracle ville være blankpolstret variablen, hvis variablen ikke optog hele den størrelse, der er blevet deklareret for den, og Oracle vil derfor allokere hukommelsen til deklareret størrelse, selvom variablen ikke besætter den fuldt ud.
  • Størrelsesbegrænsningen for denne datatype er 1-2000 byte.
  • CHAR-datatype er mere hensigtsmæssig at bruge, hvor der nogensinde løses størrelsen på dataene.
grade CHAR;manager CHAR (10):= 'guru99';
Syntaks Forklaring:
  • Den første erklæringserklæring erklærede variablen 'kvalitet' for CHAR-datatypen med den maksimale størrelse på 1 byte (standardværdi).
  • Den anden erklæring erklærede variablen 'manager' af CHAR-datatypen med den maksimale størrelse på 10 og tildelte værdien 'guru99', som er på 6 byte. Oracle tildeler i dette tilfælde hukommelsen på 10 byte i stedet for 6 byte.
VARCHAR2 Denne datatype gemmer strengen, men længden af ​​strengen er ikke fast.
  • Størrelsesbegrænsningen for denne datatype er 1-4000 byte for tabelkolonnestørrelse og 1-32767 byte for variabler.
  • Størrelsen er defineret for hver variabel på tidspunktet for variabeldeklarationen.
  • Men Oracle tildeler kun hukommelse, efter at variablen er defineret, dvs. Oracle vil kun overveje den faktiske længde af strengen, der er lagret i en variabel til hukommelsesallokering snarere end den størrelse, der er givet for en variabel i erklæringsdelen.
  • Det er altid godt at bruge VARCHAR2 i stedet for CHAR-datatypen for at optimere hukommelsesforbruget.
manager VARCHAR2(10) := ‘guru99';
Syntaks Forklaring:
  • Ovenstående erklæringserklæring erklærede variablen 'manager' af VARCHAR2-datatypen med den maksimale størrelse på 10 og tildelte værdien 'guru99', som er på 6 byte. Oracle tildeler kun hukommelse på 6 byte i dette tilfælde.
VARCHAR Dette er synonymt med VARCHAR2-datatypen.
  • Det er altid en god praksis at bruge VARCHAR2 i stedet for VARCHAR for at undgå adfærdsmæssige ændringer.
manager VARCHAR(10) := ‘guru99';
Syntaks Forklaring:
  • Ovenstående erklæring erklærede variablen 'manager' af VARCHAR-datatypen med den maksimale størrelse på 10 og tildelte værdien 'guru99', som er på 6 byte. Oracle tildeler kun hukommelse på 6 byte i dette tilfælde. (Svarende til VARCHAR2)
NCHAR Denne datatype er den samme som CHAR-datatypen, men tegnsættet vil for det nationale tegnsæt.
  • Dette tegnsæt kan defineres for sessionen ved hjælp af NLS_PARAMETERS.
  • Tegnsættet kan være enten UTF16 eller UTF8.
  • Størrelsesbegrænsningen er 1-2000 byte.
native NCHAR(10);
Syntaks Forklaring:
  • Ovenstående erklæring erklærer variablen 'native' af NCHAR-datatypen med den maksimale størrelse på 10.
  • Længden af ​​denne variabel afhænger af (antal længder) pr. Byte som defineret i tegnsættet.
NVARCHAR2 Denne datatype er den samme som VARCHAR2-datatypen, men tegnsættet er af det nationale tegnsæt.
  • Dette tegnsæt kan defineres for sessionen ved hjælp af NLS_PARAMETERS.
  • Tegnsættet kan være enten UTF16 eller UTF8.
  • Størrelsesbegrænsningen er 1-4000 byte.
Native var NVARCHAR2(10):='guru99';
Syntaks Forklaring:
  • Ovenstående erklæring erklærer variablen 'Native_var' for NVARCHAR2 datatypen med den maksimale størrelse på 10.
LANG og LANGRAV Denne datatype bruges til at gemme stor tekst eller rådata op til den maksimale størrelse på 2 GB.
  • Disse bruges hovedsageligt i dataordbogen.
  • LONG datatype bruges til at gemme tegnsætdata, mens LONG RAW bruges til at gemme data i binært format.
  • LONG RAW-datatypen accepterer medieobjekter, billeder osv., Mens LONG kun fungerer på data, der kan gemmes ved hjælp af tegnsæt.
Large_text LONG;Large_raw LONG RAW;
Syntaks Forklaring:
  • Ovenstående erklæring erklærer variablen 'Large_text' for LONG datatype og 'Large_raw' for LONG RAW datatype.
Bemærk: Brug af LANG datatype anbefales ikke af Oracle. I stedet bør LOB-datatype foretrækkes.

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.

  1. BLOB
  2. CLOB og NCLOB
  3. 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:

  • I ovenstående erklæres variabel 'Binary_data' som en BLOB.
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:

  • I ovenstående erklæres variabel 'Charac_data' som CLOB-datatype.
BFIL
  • BFILE er de datatyper, der gemmer de ustrukturerede binære formatdata uden for databasen som en operativsystemfil.
  • Størrelsen på BFILE er til et begrænset operativsystem, og de er skrivebeskyttede filer og kan ikke ændres.

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.