Oracle PL/SQL-datatyper: Boolean, Antal, Datum [Exempel]
Vad är PL/SQL-datatyper?
Datatyper i PL/SQL används för att definiera hur data ska lagras, hanteras och behandlas av Oracle under datalagring och bearbetning. Datatyper är associerade med det specifika lagringsformatet och intervallbegränsningarna. I Oracle, varje värde eller konstant tilldelas en datatyp.
Den största skillnaden mellan PL/SQL och SQL datatyper är, SQL-datatyp är begränsad till tabellkolumnen medan PL/SQL-datatyperna används i PL/SQL-block. Mer om detta senare i handledningen.
Följande är diagrammet över olika Oracle PL/SQL-datatyper:

PL/SQL KARAKTER Datatyp
Denna datatyp lagrar i princip alfanumeriska tecken i strängformat.
De bokstavliga värdena ska alltid omges av enkla citattecken samtidigt som de tilldelas till CHARACTER-datatypen.
Denna karaktärsdatatyp klassificeras ytterligare enligt följande:
- CHAR Datatyp (fast strängstorlek)
- VARCHAR2 Datatyp (variabel strängstorlek)
- VARCHAR Datatyp
- NCHAR (inbyggd fast strängstorlek)
- NVARCHAR2 (inbyggd variabel strängstorlek)
- LÅNGT och LÅNGT RÅT
Data typ | Description | syntax |
---|---|---|
RÖDING | Denna datatyp lagrar strängvärdet och storleken på strängen är fast vid tidpunkten för deklarationen av variabel.
|
grade CHAR; manager CHAR (10):= 'guru99'; Syntaxförklaring:
|
VARCHAR2 | Denna datatyp lagrar strängen, men längden på strängen är inte fast.
|
manager VARCHAR2(10) := ‘guru99'; Syntaxförklaring:
|
VARCHAR | Detta är synonymt med datatypen VARCHAR2.
|
manager VARCHAR(10) := ‘guru99'; Syntaxförklaring:
|
NCHAR | Denna datatyp är samma som CHAR-datatypen, men teckenuppsättningen kommer att vara den nationella teckenuppsättningen.
|
native NCHAR(10); Syntaxförklaring:
|
NVARCHAR2 |
Denna datatyp är samma 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ÅNGT | Denna datatyp används för att lagra stor text eller rådata upp till en maximal storlek på 2 GB.
|
Large_text LONG; Large_raw LONG RAW; Syntaxförklaring:
Obs: Att använda LONG datatyp rekommenderas inte av Oracle. Istället bör LOB-datatyp föredras. |
PL/SQL NUMMER Datatyp
Denna datatyp lagrar nummer med fast eller flyttal upp till 38 siffror med precision. Denna datatyp används för att arbeta med fält som endast kommer att innehålla nummerdata. Variabeln kan deklareras antingen med precision och decimalsiffror eller utan denna information. Värden behöver inte omslutas inom citattecken vid tilldelning för denna datatyp.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Syntaxförklaring:
- I ovanstående deklarerar den första deklarationen att variabeln 'A' är av nummerdatatyp med total precision 8 och decimalsiffror 2.
- Den andra deklarationen deklarerar att variabeln 'B' är av nummerdatatyp med total precision 8 och inga decimalsiffror.
- Den tredje deklarationen är den mest generiska, deklarerar att variabeln 'C' är av nummerdatatyp utan begränsningar i precision eller decimaler. Det kan ta upp till högst 38 siffror.
PL/SQL BOOLEAN Datatyp
Denna datatyp lagrar de logiska värdena. Oracle Boolean Data Type representerar antingen TRUE eller FALSE och används huvudsakligen i villkorliga uttalanden. Värden behöver inte omslutas inom citattecken vid tilldelning för denna datatyp.
Var1 BOOLEAN;
Syntaxförklaring:
- I ovanstående deklareras variabeln 'Var1' som BOOLEAN datatyp. Utdata från koden kommer att vara antingen sant eller falskt baserat på villkorsuppsättningen.
PL/SQL DATUM Datatyp
Denna datatyp lagrar värdena i datumformat, som datum, månad och år. Närhelst en variabel definieras med datatypen DATE tillsammans med datumet kan den innehålla tidsinformation och som standard är tidsinformationen inställd på 12:00:00 om den inte anges. Värden måste omslutas inom citattecken vid tilldelning för denna datatyp.
Standarden Oracle tidsformatet för inmatning och utdata är 'DD-MON-YY' och det är återigen satt till NLS_PARAMETERS (NLS_DATE_FORMAT) på sessionsnivå.
newyear DATE:='01-JAN-2015'; current_date DATE:=SYSDATE;
Syntaxförklaring:
- I ovanstående deklareras variabeln "nyår" som datatyp DATE och tilldelas värdet 1 januarist, 2015 datum.
- Den andra deklarationen deklarerar variabeln aktuell_datum som datatyp DATUM och tilldelas värdet med aktuellt systemdatum.
- Båda dessa variabler håller tidsinformationen.
PL/SQL LOB-datatyp
Denna datatyp används huvudsakligen för att lagra och manipulera stora block av 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 av de viktigaste fördelarna med LOB framför 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-datatypen för tabellen under datareplikering, men det utelämnar LONG-kolumnen i tabellen. Dessa LÅNGA kolumner måste replikeras manuellt.
- Storleken på LONG-kolumnen är 2GB, medan LOB kan lagra upp till 128 TB.
- Oracle förbättrar ständigt LOB-datatypen i var och en av deras utgåvor enligt det moderna kravet, medan LONG-datatypen är konstant och får inte många uppdateringar.
Så det är alltid bra att använda LOB-datatypen istället för LONG-datatypen. Följande är de olika LOB-datatyperna. De kan lagra upp till storleken 128 terabyte.
- KLICK
- CLOB och NCLOB
- BFIL
Data typ | Description | 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ättningsdetaljerna, så att det kan lagra ostrukturerad data som multimediaobjekt, bilder etc. |
Binary_data BLOB; Syntaxförklaring:
|
CLOB och NCLOB | CLOB-datatypen 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 in 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 kommer att lära oss om komplexa datatyper i ytterligare ämnen.