Oracle PL/SQL-datatyper: Boolean, Antal, Datum [Exempel]
⚡ Smart sammanfattning
PL/SQL-datatyper definierar hur Oracle lagrar, hanterar och begränsar varje värde i ett block. De grupperas i tecken-, tal-, booleska-, datum- och stora objektfamiljer (LOB), var och en med sitt eget lagringsformat, storleksgränser och tilldelningsregler.

Vad är PL/SQL-datatyper?
Datatyper i PL/SQL definiera hur data ska lagras, hanteras och behandlas av Oracle under lagring och bearbetning. Datatyper är associerade med ett specifikt lagringsformat och intervallbegränsningar. Oracle, varje värde eller konstant tilldelas en datatyp.
Den största skillnaden mellan PL/SQL och SQL datatyper är att SQL-datatyper är begränsade till tabellkolumner, medan PL/SQL-datatyper används i PL/SQL-block. Mer om detta senare i handledningen.
Följande är ett diagram över de olika Oracle PL/SQL-datatyper:

PL/SQL KARAKTER Datatyp
Den här datatypen lagrar alfanumeriska tecken i strängformat. Literala värden ska alltid omges av enkla citattecken när de tilldelas en CHARACTER-datatyp.
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 | BESKRIVNING | syntax |
|---|---|---|
| RÖDING | Den här datatypen lagrar ett strängvärde, och strängens storlek är fast vid deklarationstillfället. variabel.
|
grade CHAR; manager CHAR (10):= 'guru99'; Syntaxförklaring:
|
| VARCHAR2 | Den här datatypen lagrar en sträng, men längden ä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 densamma som CHAR, men teckenuppsättningen är den nationella teckenuppsättningen.
|
native NCHAR(10);
Syntaxförklaring:
|
| NVARCHAR2 | Denna datatyp är densamma som VARCHAR2, men teckenuppsättningen är den nationella teckenuppsättningen.
|
Native_var NVARCHAR2(10):= 'guru99'; Syntaxförklaring:
|
| LÅNGT och LÅNGT RÅT | Den här datatypen lagrar stor text eller rådata upp till en maximal storlek på 2 GB.
|
Large_text LONG; Large_raw LONG RAW; Syntaxförklaring:
Obs: Användning av datatypen LONG rekommenderas inte av OracleLOB-datatypen bör föredras istället. |
PL/SQL NUMMER Datatyp
Denna datatyp lagrar fasta tal eller flyttal med upp till 38 siffrors precision. Den används för att arbeta med fält som endast innehåller numeriska data. Variabeln kan deklareras antingen med precision och decimalsiffriga detaljer eller utan dem. Värden behöver inte omges av citattecken när de tilldelas.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Syntaxförklaring:
- Den första deklarationen deklarerar variabeln 'A' av datatypen numerisk med en total precision på 8 och 2 decimalsiffror.
- Den andra deklarerar 'B' av numerisk datatyp med total precision 8 och inga decimalsiffror.
- Den tredje är den mest generiska och deklarerar 'C' för taldatatypen utan begränsning av precision eller decimaler. Den kan ta upp till 38 siffror.
PL/SQL BOOLEAN Datatyp
Den här datatypen lagrar logiska värden. Oracle Booleska datatyper representerar antingen SANT eller FALSKT och används huvudsakligen i villkorliga satser. Värden behöver inte omges av citattecken när de tilldelas.
Var1 BOOLEAN;
Syntaxförklaring:
- Variabeln 'Var1' deklareras som en BOOLESK datatyp. Utdata kommer att vara antingen sant eller falskt baserat på det uppsatta villkoret.
PL/SQL DATUM Datatyp
Denna datatyp lagrar värden i datumformat, som datum, månad och år. När en variabel definieras med datatypen DATE kan den innehålla tidsinformation; som standard är tiden inställd på 12:00:00 om ingen annan anges. Värden måste omges av citattecken när de tilldelas.
Standarden Oracle Tidsformatet för indata och utdata är 'DD-MÅN-ÅÅ', vilket är inställt på NLS_PARAMETERS (NLS_DATE_FORMAT) på sessionsnivå.
newyear DATE:= '01-JAN-2015'; current_date DATE:= SYSDATE;
Syntaxförklaring:
- Variabeln 'newyear' deklareras som datatypen DATE och tilldelas värdet 1 januari 2015.
- Den andra deklarationen deklarerar 'current_date' som datatyp DATE och tilldelar det aktuella systemdatumet.
- Båda variablerna innehåller tidsinformation.
PL/SQL LOB-datatyp
Denna datatyp används huvudsakligen för att lagra och manipulera stora block av ostrukturerad data, såsom bilder och multimediafiler. Oracle föredrar LOB framför datatypen LONG eftersom den är mer flexibel. De främsta fördelarna med LOB jämfört med LONG är:
- En tabell är begränsad till en LONG-kolumn, medan det inte finns någon begränsning på antalet LOB-kolumner.
- Datagränssnittsverktyg accepterar LOB under replikering men utelämnar LONG-kolumner, som måste replikeras manuellt.
- En LONG-kolumn lagrar upp till 2 GB, medan en LOB kan lagra upp till 128 TB.
- Oracle fortsätter att förbättra LOB-datatypen med varje utgåva, medan LONG i stort sett är oförändrad.
Så det är alltid bra att använda LOB-datatypen istället för LONG. De olika LOB-datatyperna nedan kan lagra upp till 128 terabyte:
- KLICK
- CLOB och NCLOB
- BFIL
| Data typ | BESKRIVNING | syntax |
|---|---|---|
| KLICK | Den här datatypen lagrar LOB-data i binärt filformat upp till maximalt 128 TB. Den lagrar inte data baserade på teckenuppsättningsdetaljer, så den kan lagra ostrukturerad data som multimediaobjekt och bilder. |
Binary_data BLOB;
Syntaxförklaring:
|
| CLOB och NCLOB | CLOB lagrar LOB-data i teckenuppsättningen, medan NCLOB lagrar data i den ursprungliga teckenuppsättningen. Eftersom dessa använder teckenuppsättningsbaserad lagring kan de inte lagra data som multimedia eller bilder. Den maximala storleken är 128 TB. |
Charac_data CLOB;
Syntaxförklaring:
|
| BFIL |
|
