pl sql data types variables
Denna handledning förklarar vad som är PL SQL-datatyper, variabler, konstanter och litteratur i detalj med hjälp av programmeringsexempel:
I föregående handledning av PL / SQL-serien , vi introducerades för PL / SQL med dess funktioner och grundläggande syntax med exempel.
I den här artikeln kommer vi att diskutera de olika datatyperna som PL / SQL stöder. Vi ska också undersöka variablerna och konstanterna som används i stor utsträckning i PL SQL.
PL / SQL-bokstäver är också viktiga och vi kommer att lära oss om det i denna handledning tillsammans med dess praktiska användning.
Vad du kommer att lära dig:
Pl SQL-datatyper
Alla variabler, konstanter, parametrar för PL / SQL har en viss datatyp som definierar dess värden, begränsningar och formatet i vilket de lagras. PL / SQL innehåller datatyperna som Large Object, även känd som LOB, Scalar, Reference och Composite.
Scalar Data Typer
Låt oss först diskutera Scalar Data Typer som består av följande:
- NUMERISK datatyper som behandlar värden som matematiska operationer utförs på.
- BOOLEAN datatyper som hanterar de värden som logiska operationer utförs på.
- KARAKTÄR datatyper som behandlar värden som består av alfanumeriska.
- DATUM TID datatyper.
Numeriska datatyper
Den numeriska datatypen för PL / SQL består av följande:
- BINARY_FLOAT
- BINARY_INTERGER
- PLS_INTEGER
- BINARY_DOUBLE
- DECIMAL
- NUMERISK
- SIFFRA
- FLYTA
- INT
- HELTAL
- DUBBEL PRECISION
- VERKLIG
- SMALLINT
- DEC
Kodavsnitt med numeriska datatyper:
DECLARE numA INTEGER := 10; numB NUMBER(10) := 10.8; numC DOUBLE PRECISION := 10.6; BEGIN dbms_output.put_line('The numA is: ' || numA); dbms_output.put_line('The numB is: ' || numB); dbms_output.put_line('The numC is: ' || numC); END; /
I ovanstående kod har vi datatyper INTEGER, NUMBER och DOUBLE PRECISION med variablerna numA, numB respektive numC. numB har en sifferdatatyp med precision 10 och har inga siffror efter decimaltalet.
Utgången från ovanstående kod ska vara:
Teckendatatyper
Teckendatatyperna för PL / SQL består av följande som anges nedan:
# 1) VARCHAR2: Den här datatypen lagrar sträng men stränglängden är inte fast vid deklarationen. Varchar2 har en maximal storlek på upp till 32767 byte. Den maximala bredden på en varchar2-databaskolumn är 4000 byte.
Syntax:
test VARCHAR2 (20): = ‘SoftwareTest’;
# 2) CHAR: Den här datatypen lagrar sträng men stränglängden är fast vid deklarationen. Char har en maximal storlek på upp till 32767 byte. Den maximala bredden på en kolonn med char-databaser är 2000 byte.
Syntax:
test CHAR2 (20): = ‘SoftwareTest’;
# 3) NCHAR: Detta liknar CHAR, men det lagras endast den nationella karaktärsuppsättningen. NCHAR har en maximal storlek på upp till 32767 byte. Den maximala bredden för en NCHAR-databaskolumn är 2000 byte.
Syntax:
test NCHAR2 (20);
# 4) LÅNG: Detta lagrar teckensträngar med variabel längd. Lången har en maximal storlek upp till 32760 byte.
Syntax:
test LÅNG;
# 5) LÅNG RAD: Detta lagrar data i binärt format eller byte-strängar. Den långa raden har en maximal storlek på upp till 32760 byte.
vad är nätverkssäkerhetsnyckeln på en router
Syntax:
test LÅNG RAD;
# 6) ROWID: Dessa är de fysiska identifierarna för en rad som pekar på adressen till en rad i en normal tabell.
# 7) UROWID: Dessa är de allmänna identifierarna för rader.
# 8) NVARCHAR2: Detta liknar VARCHAR2, men det lagras endast den nationella karaktärsuppsättningen. Den maximala bredden för en databaskolumn för nvarchar2 är 4000 byte.
# 9) VARCHAR: Detta liknar VARCHAR2.
Syntax:
test VARCHAR2 (20): = ‘SoftwareTest’;
Låt oss nu diskutera teckendatatyperna för PL / SQL i tabellformat.
Sl No. | Data typ | Beskrivning |
---|---|---|
7 | LÅNGA | Detta liknar LONG. Dessa data tolkas inte av PL / SQL. |
1 | VARCHAR2 | Detta används för att lagra karaktärsdata som har variabel längd. Storleken ställs in för variablerna vid tidpunkten för deklarationen. Det rekommenderas alltid att använda VARCHAR2 för effektiv minnesanvändning. |
två | RÖDING | Detta används för att lagra karaktärsdata som har en fast längd. Storleken ställs in för variablerna vid tidpunkten för deklarationen. Det rekommenderas alltid att använda CHAR när data i fast storlek ska användas. |
3 | VARCHAR | Detta liknar VARCHAR2. Det rekommenderas alltid att använda VARCHAR under implementeringen av koden. |
4 | NCHAR | Detta används för att lagra karaktärsdata som har nationell karaktärsdata med fast längd. Teckenuppsättningen är antingen UTF 8 eller UTF 16. Det rekommenderas alltid att konvertera CHAR till NCHAR. Men omvandling av NCHAR till CHAR kan leda till dataintruntering. |
5 | NVARCHAR2 | Detta används för att lagra karaktärsdata som har nationella karaktärsdata med variabel längd. Detta liknar VARCHAR2. Teckenuppsättningen är antingen UTF 8 eller UTF 16. Det rekommenderas alltid att konvertera VARCHAR2 till NVARCHAR2. Men att konvertera NVARCHAR2 till VARCHAR2 kan leda till datatununering. |
6 | LÅNG | Detta används i en datalogg. Detta används främst i teckenuppsättningsdata. |
Booleska datatyper
Dessa datatyper av PL / SQL kan användas för att lagra logiska värden. TRUE, FALSE och NULL är de booleska värdena.
SQL har inte BOOLEAN-datatyper. Så vi måste undvika dem i följande scenarier:
- PL / SQL-satser genererade från SQL.
- Standardfunktioner för PL / SQL.
- Normala SQL-uttalanden.
Syntax:
test Boolean;
Utgången från testvariabeln kommer att vara SANT eller FALSK beroende på vissa kriterier.
Datum Tid Datatyper
Dessa datatyper används för konstanta datum och tid. Rätt datumintervall börjar från 1 januari 4712 f.Kr. till 31 december 9999 e.Kr. och tiden definieras i sekunder. Det inbyggda datumformatet är DD-MON-YY vilket innebär dubbla siffror tilldelade för månadsdagen, kortfattat månadens namn och sedan de två sista siffrorna för året.
En DATUM består av andra, minut, dag, timme, månad, år och sekel. Var och en av dessa fält har ett definierat specifikt intervall enligt nedan:
- ANDRA: Den definieras från intervallet 00 till 59,9.
- MINUT: Den definieras i intervallet från 00 till 59.
- TIMME: Den definieras i intervallet från 00 till 23.
- DAG: Den definieras i intervallet från 01 till 31.
- MÅNAD: Den definieras i intervallet från 01 till 12.
- ÅR: Den definieras i intervallet från -4712 till 9999 (som inte inkluderar 0).
- TIMEZONE_HOUR: Den definieras i intervallet från -12 till 14.
- TIMEZONE_MINUTE: Den definieras i intervallet från 00 till 59.
- TIMEZONE_REGION
- TIMEZONE_ABBR
Syntax:
TIMESTAMP '1990-06-04 9:00:00 US/Pacific' TIMESTAMP '1990-06-04 01:30:00 US/Pacific PDT'
Här har vi beskrivit tidszonen med hjälp av symboler. US / Pacific eller PDT-specifikation används för att definiera en viss tidszon. PDT-formulär används mest eftersom det ger riktlinjerna när du byter till sommartid.
LOB-datatyper
Låt oss nu diskutera LOB-datatyperna som handlar om stora bitar av data som består av videor, ljud, grafik, bilder och så vidare.
LOB-datatyper har många fördelar jämfört med långa datatyper. De listas nedan:
- Lång rymmer 2 GB medan LOB rymmer 128 TB.
- En tabell kan ha en enda kolumn av typen LONG medan det kan finnas flera kolumner av datatypen LOB.
- LOB-datatyp genomgår ständiga förbättringar och uppdateringar från Oracle medan LONG datatyp inte har många förbättringar och uppdateringar.
LOB-datatyper listas nedan:
- BFIL: Detta används för att hålla ostrukturerad data i binärt format ur databasen som en operativsystemfil.
- NCLOB: Detta används för att hålla enorma NCHAR-data i databasen.
- CLOB: Detta används för att hålla enorma data av karaktärstyp i databasen.
Syntax:
Binär CLOB;
- KLICK: Detta används för att hålla enorma binära data i databasen.
Syntax:
Binär BLOB;
Kodimplementering med vissa datatyper:
DECLARE m CHAR(20) := 'softwareTest!'; n VARCHAR2(30) := 'plsql'; o NCHAR(30) := 'plsql datatypes'; p NVARCHAR2(30) := 'plsql literals'; presentDt DATE:= SYSDATE; a INTEGER := 16; b NUMBER(20) := 11.2; c DOUBLE PRECISION := 14.7; BEGIN dbms_output.put_line('The char datatype is: ' || m); dbms_output.put_line('The varchar datatype is: ' || n); dbms_output.put_line('The nchar datatype is: ' || o); dbms_output.put_line('The nvarchar2 datatype is: ' || p); dbms_output.put_line('The current date is: ' || presentDt); dbms_output.put_line('The number a is: ' || a); dbms_output.put_line('The number b is: ' || b); dbms_output.put_line('The number c is: ' || c); END; /
Utgången från ovanstående kod ska vara:
PL SQL-variabler
PL / SQL-variabelnamn följer namngivningskonventionen som består av alfanumeriska tecken som inte får vara mer än trettio. PL / SQL är skiftlägeskänslig och nyckelorden ska inte användas som en variabel.
Variabelnamnet ska vara meningsfullt och kan följas av en understrykning (_), nummer eller dollar ($).
PL SQL-variabeldeklaration
Variabler av PL / SQL måste finnas i deklarationsområdet eller vara närvarande i ett paket som en global variabel. PL / SQL reserverar minne för variablerna och platsen för lagring definieras av variabelnamnet.
Syntax för variabel deklaration:
variable_name (CONSTANT) datatype (NOT NULL) (:= | DEFAULT initial_value)
Här är variabelnamnet en autentisk PL / SQL-identifierare och datatyp kan vara en användardefinierad eller en bekräftad PL / SQL-datatyp.
Kodimplementering för variabel deklaration:
DECLARE v_namis VARCHAR2(10); n_addressis NUMBER(10,3); BEGIN dbms_output.put_line('The name is: ' || v_namis); dbms_output.put_line('The address is: ' || n_addressis); END;
Utgången från ovanstående kod ska vara:
Vänligen notera, vi har nämnt både precisionen och storleken på nummerdatatypen. Detta är känt som den begränsade deklarationen. Denna typ av deklaration förbrukar mindre minne.
Initialisering av variabel PL / SQL
Som standard tar PL / SQL värdet på en variabel som NULL. Men om vi inte vill initiera en variabel med NULL, kan det uppnås genom att antingen använda nyckelordet STANDARD eller med tilldelningsoperatören.
Syntax:
num integer := 50; test varchar(40) DEFAULT 'Software Test Help';
Vi kan också definiera att en variabel inte ska ha NULL-värde genom att nämna NOT NULL-begränsning. Om begränsningen NOT NULL används måste vi dock ställa in ett värde för variabeln.
Kodimplementering med variabel initialisering:
DECLARE v_namis VARCHAR2(40) := 'softwareTest!'; n_couris VARCHAR2(30) := 'plsql'; BEGIN dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || n_couris); END; /
Utgången från ovanstående kod ska vara:
Kodimplementering med uppdragskoncept:
DECLARE v_namis VARCHAR2(40); n_couris VARCHAR2(30); BEGIN v_namis := 'softwareTest!'; n_couris := 'plsql'; dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || v_couris); END; /
Här används tilldelningsoperatören (=) för att tilldela värden till variabeln.
Utgången från ovanstående kod ska vara:
Variabelt omfång för PL / SQL
Ett PL / SQL-block kan ha inre kodblock. Om en variabel som deklareras är en del av det inre blocket kan den inte användas av det yttre blocket. Men en variabel som är en del av det yttre blocket kan manipuleras i kodens inre block.
Dessa typer av variabler beskrivs nedan:
- Globala variabler: Variablerna som deklareras i det yttre blocket eller paketet.
- Lokala variabler: Variablerna som deklareras i det inre kodblocket och inte kan nås från det yttre blocket.
Kodimplementering med globala och lokala variabler:
DECLARE -- Global variables val number := 10; BEGIN dbms_output.put_line('Global variable is : ' || val); DECLARE -- Local variables val number := 100; BEGIN dbms_output.put_line('Local variable is: ' || val); END; END; /
Utgången från ovanstående kod ska vara:
Vänligen notera att produktionen här, den globala variabeln är: 10 (på grund av den globala variabeln val) och ”Lokal variabel är: 100 (på grund av den lokala variabeln val).
PL / SQL-ankare
PL / SQL-ankare definieras med nyckelordet% TYPE för att deklarera variabler med datatypen kopplad till datatypen för den specifika kolumnen i tabellen.
Kodavsnitt med ankare:
DECLARE v_namis RESSIDENT.NAME%TYPE; n_addessis RESSIDENT.ADDRESS%TYPE; BEGIN NULL; END; /
Här har vi en RESIDENT-tabell och vi har att göra med kolumnerna NAMN och ADRESS i den tabellen.
Konstanter i PL / SQL
En konstant håller det värde som en gång deklareras oförändrat under hela programmet.
PL / SQL konstantdeklaration
De KONSTANT nyckelord används för att definiera konstanter i programmet. Det börjar med ett fördefinierat värde som förblir detsamma under hela programmet.
Syntax för variabel deklaration:
const_name CONSTANT data type := val
Kodimplementering med konstant:
DECLARE -- Constant p constant number := 3.141592654; -- Radius declarations r number(10,1); a_circle number(10,3); BEGIN -- Area calculation r := 9.4; a_circle := p * r * r; -- Output in console dbms_output.put_line('Area of circle: ' || a_circle); END; /
Utgången från ovanstående kod ska vara:
Bokstäver i PL SQL
Ett booleskt, numeriskt eller ett strängvärde som inte definieras av en PL / SQL-identifierare kallas bokstavligt. Bokstäverna är skiftlägeskänsliga och är av följande typer som anges nedan:
- Booleska bokstäver ( Till exempel - FALSK SANN )
- Karaktärslitteratur ( Till exempel - 's', '7', ')')
- Stränglitteratur ( Till exempel - ”Programvarutest”)
- Numeriska bokstäver ( Till exempel - 78, 04, 6.3)
- DATUM och tidslitteratur ( Till exempel - ’25 -05-2012 ’)
Vanliga frågor och svar
F # 1) Vilka är datatyperna i PL SQL?
Svar: PL SQL-datatyperna är sammansatta och skalära. De skalära datatyperna kan innehålla enskilda värden som Character, Number, Boolean och DateTime. Medan de sammansatta datatyperna lagrar mer än ett värde som insamling och registrering.
F # 2) Vad är PL / SQL-variabeln?
Svar: En PL SQL-variabel är ett namn som hjälper en utvecklare att lagra data tillfälligt under programkörningen. Det är ett meningsfullt namn som tilldelats lagringsområdet. Alla variabler i PL / SQL tillhör en specifik datatyp.
F # 3) Hur skickar man en datumparameter i PL / SQL?
Svar: Vi kan skicka en datumparameter i PL / SQL med hjälp av DATE-nyckelordet. Den följer ett fast format som ”ÅÅÅÅ-MM-DD”.
F # 4) Hur deklarerar du en konstant i PL / SQL?
Svar: Vi kan förklara en konstant i PL / SQL med hjälp av nyckelordet CONSTANT. Efter CONSTANT måste vi nämna det värde som tilldelas det. Detta värde förblir fast under hela programmet.
F # 5) Hur många typer av bokstäver finns i PL / SQL?
Svar: Typerna av bokstäver i PL / SQL är Number, DateTime, Text och Integer.
F # 6) Är PL SQL-variabler skiftlägeskänsliga?
Svar: PL SQL-variabler inklusive de reserverade orden är skiftlägeskänsliga. Till exempel, Börja och börja båda tjäna samma syfte.
Slutsats
En stor del av PL / SQL som handlar om ämnen som de olika datatyper som används och deras betydelse och variablerna för PL SQL bör vara begripliga nu efter att ha läst denna handledning.
Vi har också undersökt PL SQL-konstanter och bokstäver i detalj. Gå igenom vart och ett av ämnena en efter en och långsamt kommer du att bemästra detta. PL / SQL används idag i branscher för både webb- och serverutveckling.
I nästa handledning ska vi diskutera PL / SQL Insert, Update, Delete, Select-satsen och andra relaterade ämnen.
Låt oss hålla koll på mer kunskapsdelning.
Rekommenderad läsning
- Python-variabler
- Python-datatyper
- C # Datatyper och variabler med exempel
- JMeter-dataparameterisering med användardefinierade variabler
- Data Mart Tutorial - Typer, exempel och implementering av Data Mart
- C ++ datatyper
- Java-variabler och deras typer med exempel
- SQL vs NoSQL Exakta skillnader och vet när du ska använda NoSQL och SQL