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.
|
grade CHAR;manager CHAR (10):= 'guru99';Syntaxförklaring:
|
VARCHAR2 | Den här datatypen lagrar strängen, men strängens längd är inte fast.
|
manager VARCHAR2(10) := ‘guru99';Syntaxförklaring:
|
VARCHAR | Detta är synonymt med datatypen VARCHAR2.
|
manager VARCHAR(10) := ‘guru99';Syntaxförklaring:
|
NCHAR | Den här datatypen är densamma som CHAR-datatypen, men teckenuppsättningen för den nationella teckenuppsättningen.
|
native NCHAR(10);Syntaxförklaring:
|
NVARCHAR2 | Den här datatypen är densamma som VARCHAR2-datatypen, men teckenuppsättningen kommer att vara av den nationella teckenuppsättningen.
|
Native var NVARCHAR2(10):='guru99';Syntaxförklaring:
|
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.
|
Large_text LONG;Large_raw LONG RAW;Syntaxförklaring:
|
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.
- KLICK
- CLOB och NCLOB
- 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:
|
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:
|
BFIL |
|
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.