Oracle PL / SQL-datatyper: booleskt, nummer, datum (exempel)

Innehållsförteckning:

Anonim

Vad är PL / SQL-datatyper?

En datatyp är associerad med det specifika lagringsformatet och begränsningarna för intervallet. I Oracle tilldelas varje värde eller konstant en datatyp.

I grund och botten definieras hur data lagras, hanteras och behandlas av Oracle under datalagring och bearbetning.

Huvudskillnaden mellan datatyperna PL / SQL och SQL är att SQL-datatypen är begränsad till tabellkolumn medan PL / SQL-datatyperna används i PL / SQL-blocken. Mer om detta senare i handledningen.

Följande är diagrammet för olika datatyper i PL / SQL

I den här handledningen lär du dig-

  • KARAKTER Datatyp
  • NUMBER Datatyp
  • BOOLEAN Datatyp
  • DATE Datatyp
  • LOB-datatyp

KARAKTER Datatyp:

Denna datatyp lagrar i princip alfanumeriska tecken i strängformat.

De bokstavliga värdena bör alltid ingå i enstaka citat samtidigt som de tilldelas Character-datatypen.

Denna typ av datatyp klassificeras vidare enligt följande:

  • CHAR Datatyp (fast strängstorlek)
  • VARCHAR2 Datatyp (variabel strängstorlek)
  • VARCHAR Datatyp
  • NCHAR (normal fast strängstorlek)
  • NVARCHAR2 (native variabel strängstorlek)
  • LÅNG och LÅNG RÅ
Data typ Beskrivning Syntax
RÖDING Den här datatypen lagrar strängvärdet och strängens storlek fixas vid tidpunkten för deklarationen av variabeln.
  • Oracle skulle vara blankstoppad variabeln om variabeln inte upptar hela den storlek som har deklarerats för den, Oracle kommer alltså att allokera minnet för deklarerad storlek även om variabeln inte upptar den helt.
  • Storleksbegränsningen för denna datatyp är 1-2000 byte.
  • CHAR-datatypen är lämpligare att använda där det någonsin fixas datastorleken hanteras.
grade CHAR;manager CHAR (10):= 'guru99';
Syntaxförklaring:
  • Det första deklarationsdeklarationen förklarade variabeln "klass" för CHAR-datatyp med den maximala storleken 1 byte (standardvärde).
  • Det andra deklarationsdeklarationen förklarade variabeln '' manager '' av CHAR-datatyp med den maximala storleken på 10 och tilldelade värdet 'guru99' som är 6 byte. Oracle kommer att fördela minnet på 10 byte istället för 6 byte i det här fallet.
VARCHAR2 Den här datatypen lagrar strängen, men strängens längd är inte fast.
  • Storleksbegränsningen för denna datatyp är 1-4000 byte för tabellkolumnstorlek och 1-32767 byte för variabler.
  • Storleken definieras för varje variabel vid tidpunkten för variabeldeklarationen.
  • Men Oracle kommer att allokera minne först efter att variabeln har definierats, dvs. Oracle kommer bara att ta hänsyn till den faktiska längden på strängen som lagras i en variabel för minnesallokering snarare än den storlek som har givits för en variabel i deklarationsdelen.
  • Det är alltid bra att använda VARCHAR2 istället för CHAR-datatyp för att optimera minnesanvändningen.
manager VARCHAR2(10) := ‘guru99';
Syntaxförklaring:
  • Ovanstående deklarationsförklaring förklarade variabeln '' manager '' av VARCHAR2-datatypen med den maximala storleken på 10 och tilldelade värdet 'guru99' som är 6 byte. Oracle tilldelar i detta fall endast 6 byte.
VARCHAR Detta är synonymt med datatypen VARCHAR2.
  • Det är alltid bra att använda VARCHAR2 istället för VARCHAR för att undvika beteendeförändringar.
manager VARCHAR(10) := ‘guru99';
Syntaxförklaring:
  • Ovanstående deklarationsförklaring förklarade variabeln '' manager '' av VARCHAR-datatyp med den maximala storleken på 10 och tilldelade värdet 'guru99' som är 6 byte. Oracle tilldelar i detta fall endast 6 byte minne. (Liknar VARCHAR2)
NCHAR Den här datatypen är densamma som CHAR-datatypen, men teckenuppsättningen för den nationella teckenuppsättningen.
  • Denna teckenuppsättning kan definieras för sessionen med NLS_PARAMETERS.
  • Teckenuppsättningen kan vara antingen UTF16 eller UTF8.
  • Storleksbegränsningen är 1-2000 byte.
native NCHAR(10);
Syntaxförklaring:
  • Ovanstående uttalande förklarar variabeln 'native' för NCHAR-datatyp med den maximala storleken på 10.
  • Längden på denna variabel beror på (antal längder) per byte som definierats i teckenuppsättningen.
NVARCHAR2 Den här datatypen är densamma som VARCHAR2-datatypen, men teckenuppsättningen kommer att vara av den nationella teckenuppsättningen.
  • Denna teckenuppsättning kan definieras för sessionen med NLS_PARAMETERS.
  • Teckenuppsättningen kan vara antingen UTF16 eller UTF8.
  • Storleksbegränsningen är 1-4000 byte.
Native var NVARCHAR2(10):='guru99';
Syntaxförklaring:
  • Ovanstående deklarationsdeklaration deklarerar variabeln 'Native_var' för datatypen NVARCHAR2 med den maximala storleken 10.
LÅNGT och LÅNGA Denna datatyp används för att lagra stor text eller rådata upp till den maximala storleken på 2 GB.
  • Dessa används huvudsakligen i databoken.
  • LONG datatyp används för att lagra teckenuppsättningsdata, medan LONG RAW används för att lagra data i binärt format.
  • LONG RAW-datatyp accepterar medieobjekt, bilder etc. medan LONG fungerar endast på data som kan lagras med teckenuppsättning.
Large_text LONG;Large_raw LONG RAW;
Syntaxförklaring:
  • Ovanstående uttalande förklarar variabeln 'Large_text' för LONG datatyp och 'Large_raw' för LONG RAW datatyp.
Obs! Användning av LONG-datatyp rekommenderas inte av Oracle. Istället bör LOB-datatyp föredras.

NUMBER Datatyp:

Denna datatyp lagrar fasta eller flytande nummer upp till 38 precisionssiffror. Den här datatypen används för att arbeta med fält som endast innehåller nummerdata. Variabeln kan deklareras antingen med precisions- och decimalsiffriga detaljer eller utan denna information. Värden behöver inte bifogas inom offerten vid tilldelning för den här datatypen.

A NUMBER(8,2);B NUMBER(8);C NUMBER;

Syntaxförklaring:

  • I ovanstående förklarar den första deklarationen att variabeln 'A' är av datatyp med total precision 8 och decimalsiffror 2.
  • Den andra deklarationen förklarar variabeln "B" är av datatyp med total precision 8 och inga decimalsiffror.
  • Den tredje deklarationen är den mest generiska, deklarerar variabel 'C' är av datatyp utan begränsning i precision eller decimaler. Det kan ta upp till maximalt 38 siffror.

BOOLEAN Datatyp:

Den här datatypen lagrar de logiska värdena. Den representerar antingen SANT eller FALSK och används huvudsakligen i villkorliga uttalanden. Värden behöver inte bifogas inom offerten vid tilldelning för den här datatypen.

Var1 BOOLEAN;

Syntaxförklaring:

  • I ovanstående deklareras variabel 'Var1' som BOOLEAN-datatyp. Utgången från koden kommer att vara antingen sann eller falsk baserat på villkoret.

DATE Datatyp:

Den här datatypen lagrar värdena i datumformat, som datum, månad och år. När en variabel definieras med DATE-datatyp tillsammans med datumet kan den innehålla tidsinformation och som standard är tidsinformation inställd på 12:00:00 om den inte anges. Värden måste bifogas inom offerten medan de tilldelas för den här datatypen.

Standard Oracle-tidsformat för in- och utgång är 'DD-MON-YY' och det är åter inställt på NLS_PARAMETERS (NLS_DATE_FORMAT) på sessionsnivå.

newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;

Syntaxförklaring:

  • I ovanstående, variabeln 'newyear' deklareras som typ DATUM uppgifter och tilldelas värdet 1 jan st , 2015 datum.
  • Den andra deklarationen förklarar variabeln current_date som DATE-datatyp och tilldelade värdet med nuvarande systemdatum.
  • Båda dessa variabler innehåller tidsinformation.

LOB-datatyp:

Denna datatyp används främst för att lagra och manipulera stora block med ostrukturerade data som bilder, multimediafiler etc. Oracle föredrar LOB istället för en LONG-datatyp eftersom den är mer flexibel än LONG-datatypen. Nedan är några få fördelar med LOB jämfört med LONG datatyp.

  • Antalet kolumner i en tabell med LONG-datatyp är begränsat till 1, medan en tabell inte har några begränsningar för ett antal kolumner med LOB-datatyp.
  • Datagränssnittsverktyget accepterar LOB-datatyp för tabellen under datareplikering, men den utelämnar LONG-kolumnen i tabellen. Dessa LÅNGA kolumner måste replikeras manuellt.
  • Storleken på LONG-kolumnen är 2 GB, medan LOB kan lagra upp till 128 TB.
  • Oracle förbättrar ständigt LOB-datatypen i var och en av sina utgåvor enligt det moderna kravet, medan LONG-datatypen är konstant och inte får många uppdateringar.

Så det är alltid bra att använda LOB-datatyp istället för LONG-datatypen. Följande är de olika LOB-datatyperna. De kan lagra upp till 128 terabyte.

  1. KLICK
  2. CLOB och NCLOB
  3. BFIL
Data typ Beskrivning Syntax
KLICK

Denna datatyp lagrar LOB-data i det binära filformatet upp till den maximala storleken på 128 TB. Detta lagrar inte data baserat på teckenuppsättningsinformation, så att den kan lagra ostrukturerad data som multimediaobjekt, bilder etc.

Binary_data BLOB;

Syntaxförklaring:

  • I ovanstående deklareras variabeln 'Binary_data' som en BLOB.
CLOB och NCLOB

CLOB-datatyp lagrar LOB-data i teckenuppsättningen, medan NCLOB lagrar data i den ursprungliga teckenuppsättningen. Eftersom dessa datatyper använder teckenuppsättningsbaserad lagring kan dessa inte lagra data som multimedia, bilder etc. som inte kan läggas i en teckensträng. Den maximala storleken på dessa datatyper är 128 TB.

Charac_data CLOB;

Syntaxförklaring:

  • I ovanstående deklareras variabel 'Charac_data' som CLOB-datatyp.
BFIL
  • BFILE är datatyperna som lagrade ustrukturerade data i binärt format utanför databasen som en operativsystemfil.
  • Storleken på BFILE är för ett begränsat operativsystem, och de är skrivskyddade filer och kan inte ändras.

Sammanfattning

Vi har täckt de olika enkla datatyperna som finns tillgängliga i PL / SQL tillsammans med deras syntax. Vi lär oss mer om komplexa datatyper i ytterligare ämnen.