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 |
|
