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 | BESKRIVNING | 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 | 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รค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.
