kintamųjų deklaravimas pl/sql
DESCRIPTION
Kintamųjų deklaravimas PL/SQL. Paskaita 2. Temos. Vardai (žymėjimai arba identifikatoriai) Kintamųjų naudojimas Kintamųjų paskelbimas ir inicializacija Duomenų tipai %TYPE atributas Bind (Įstatomi) kintamieji. SELECT first_name, department_id INTO v_fname, v_deptno FROM …. v_fname. - PowerPoint PPT PresentationTRANSCRIPT
Kintamųjų deklaravimas PL/SQL
Paskaita 2
Temos
• Vardai (žymėjimai arba identifikatoriai)• Kintamųjų naudojimas• Kintamųjų paskelbimas ir inicializacija• Duomenų tipai• %TYPE atributas• Bind (Įstatomi) kintamieji
Kintamųjų naudojimas
•Kintamieji g. b. naudojami:• Laikinam duomenų saugojimui• Saugomų reikšmių manipuliacijai• Pakartotinam naudojimui
SELECT first_name, department_id INTO v_fname,v_deptnoFROM …
v_fname
v_deptno
Jennifer
10
Vardai arba Žymėjimai
• Turi prasidėti raide• Gali susidėti iš raidžių ir skaičių• Galima naudoti simbolius ($, _, ir #)• Maksimalus ilgis 30 simbolių• Neturi būti Oracle rezervuoti žodžiai
Kintamųjų apdorojimas PL/SQL
• Kintamųjų paskelbimas ir inicializacija vyksta deklaravimo sekcijoje
• Kintamųjų panaudojimas ir naujų verčių priskyrimas vyksta vykdymo sekcijoje
• Galimas kintamųjų kaip parametrų perdavimas į PL/SQL paprogrames
• Panaudojimas PL/SQL paprogramių rezultatų saugojimui
PL/SQL Kintamųjų paskelbimas ir inicializacija
•Sintaksė:
•Pavyzdys:
identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr];
DECLARE v_hiredate DATE; v_deptno NUMBER(2) NOT NULL := 10; v_location VARCHAR2(13) := 'Atlanta'; c_comm CONSTANT NUMBER := 1400;
PL/SQL Kintamųjų paskelbimas ir inicializacija
DECLARE v_myName VARCHAR2(20);BEGIN DBMS_OUTPUT.PUT_LINE('My name is: '|| v_myName); v_myName := 'John'; DBMS_OUTPUT.PUT_LINE('My name is: '|| v_myName);END;/
DECLARE v_myName VARCHAR2(20):= 'John';BEGIN v_myName := 'Steven'; DBMS_OUTPUT.PUT_LINE('My name is: '|| v_myName);END; /
1
2
Apribojimai
DECLARE v_event VARCHAR2(15);BEGIN v_event := q'!Father's day!'; DBMS_OUTPUT.PUT_LINE('3rd Sunday in June is : '|| v_event ); v_event := q'[Mother's day]'; DBMS_OUTPUT.PUT_LINE('2nd Sunday in May is : '|| v_event );END;/
Kintamųjų tipai
• PL/SQL kintamieji:• Skaliariniai• Sudėtinis• Referencinis• Large object (LOB)
• Ne-PL/SQL kintamieji: Bind kintamieji
Kintamųjų tipai
TRUE25-JAN-01
Atlanta256120.08
Snow WhiteLong, long ago,
in a land far, far away, there lived a princess called
Snow White. . .
PL/SQL Kintamųjų paskelbimo ir inicializacijos rekomendacijos
• Sukurti susitarimai kaip vadinti žymėjimus ir kt. objektus
• Kodo rašymas naudojant didžiąsias / mažąsias raides pagal Oracle rekomendacijas
• Inicializuokite kintamuosius aprašytus kaip NOT NULL ir CONSTANT
• Inicializuokite kintamąsias operatorių (:=) ir DEFAULT pagalba:
• Deklaruokite po vieną vardą arba žymėjimą vienoje eilutėje
v_myName VARCHAR2(20):='John';
v_myName VARCHAR2(20) DEFAULT 'John';
PL/SQL Kintamųjų paskelbimo rekomendacijos
• Kintamasis neturi būti pavadintas tuo pačiu vardu kaip DB lentelės stulpelio vardas
• .
• Nuduokite NOT NULL apribojimą jeigu kintamasis turi būti inicializuotas.
DECLARE employee_id NUMBER(6);BEGIN SELECT employee_id INTO employee_id FROM employees WHERE last_name = 'Kochhar';END;/
Skaliariniai duomenų tipai
• Priima vienintelę reikšmę• Neturi sudėtingos vidinės struktūros
Atlanta
TRUE 25-JAN-01
256120.08
The soul of the lazy man desires, and he has nothing; but the soul of the diligent
shall be made rich.
Pagrindiniai skaliariniai duomenų tipai
• CHAR [(maks. ilgis)]• VARCHAR2 (maks. ilgis)• NUMBER [(tikslumas, mastelis)]• BINARY_INTEGER• PLS_INTEGER• BOOLEAN• BINARY_FLOAT• BINARY_DOUBLE
Pagrindiniai skaliariniai duomenų tipai
• DATE• TIMESTAMP• TIMESTAMP WITH TIME ZONE• TIMESTAMP WITH LOCAL TIME ZONE• INTERVAL YEAR TO MONTH• INTERVAL DAY TO SECOND
Skaliarinių duomenų tipų deklaravimas•Pavyzdys:
DECLARE v_emp_job VARCHAR2(9); v_count_loop BINARY_INTEGER := 0; v_dept_total_sal NUMBER(9,2) := 0; v_orderdate DATE := SYSDATE + 7; c_tax_rate CONSTANT NUMBER(3,2) := 8.25; v_valid BOOLEAN NOT NULL := TRUE; ...
%TYPE atributas
• Naudojamas: • Deklaruoti kintamąjį pagal duomenų bazės stulpelio
tipą• Prieš tai deklaruoto kintamojo tipą
• Prieš %TYPE rašome:• Duomenų bazės lentelės ir stulpelio vardus• Jau deklaruotojo kintamojo vardą
Kintamųjų deklaravimas su%TYPE atributu•Sintaksė
•Pavyzdys
... emp_lname employees.last_name%TYPE;...
identifier table.column_name%TYPE;
... balance NUMBER(7,2); min_balance balance%TYPE := 1000;...
Boolean kintamųjų dekladavimas
• Tik TRUE, FALSE, ir NULL gali būti priskirti Boolean tipui.
• Sąlyginėse išraiškose naudojami loginiai operatoriai AND, OR ir unarinis operatorius NOT
• Kintamieji visada grąžina vieną iš šių reikšmių TRUE, FALSE arba NULL.
• Boolean reikšmė gali gražinti aritmetiniai, simboliniai ir datos išraiškos.
Bind kintamieji
•Bind kintamieji tai:• Aplinkos kintamieji
• Kartais vadinami host kintamieji
• Sukuriamos raktinio žodžio VARIABLE pagalba
• Naudojami SQL sakiniuose ir PL/SQL blokuose
• Pasiekiamos po PL/SQL bloko vykdymo
• Nuoroda į Bind kintamąjį yra (:)
Bind kintamųjų spausdinimas•Pavyzdys:
VARIABLE b_emp_salary NUMBERBEGIN SELECT salary INTO :b_emp_salary FROM employees WHERE employee_id = 178; END;/PRINT b_emp_salarySELECT first_name, last_name FROM employees WHERE salary=:b_emp_salary;
Bind kintamųjų spausdinimas•Pavyzdys:
VARIABLE b_emp_salary NUMBERSET AUTOPRINT ONDECLARE v_empno NUMBER(6):=&empno;BEGIN SELECT salary INTO :b_emp_salary FROM employees WHERE employee_id = v_empno; END;
7000
Output:
LOB duomenų tipas
Book(CLOB)
Photo(BLOB)
Movie(BFILE)
NCLOB
Sudėtinis duomenų tipas
TRUE 23-DEC-98 ATLANTA
1 5000
2 2345
3 12
4 3456
1 SMITH
2 JONES
3 NANCY
4 TIM
PL/SQL table structure PL/SQL table structure
PLS_INTEGER
VARCHAR2
PLS_INTEGER
NUMBER
Santrauka
•Sužinojome: • Vardai (žymėjimai arba identifikatoriai)
• Kintamųjų naudojimas
• Kintamųjų paskelbimas ir inicializacija
• Duomenų tipai• %TYPE atributas
• Bind (surišimo) kintamieji
Praktika 21. Vardai (žymėjimai arba identifikatoriai):
a.today
b.last_name
c.today’s_date
d.Number_of_days_in_February_this_year
e.Isleap$year
f. #number
g.NUMBER#
h.number1to7
2. Kintamųjų deklaravimas ir inicializavimas:
a.number_of_copies PLS_INTEGER;
b.printer_name constant VARCHAR2(10);
c.deliver_to VARCHAR2(10):=Johnson;
d.by_when DATE:= CURRENT_DATE+1;
Praktika 25. Edit the lab_02_04_soln.sql script.
a. Add code to create two bind variables. Create bind variables b_basic_percent and b_pf_percent of type NUMBER.
b.In the executable section of the PL/SQL block, assign the values 45 and 12 to b_basic_percent and b_pf_percent, respectively.
c. Terminate the PL/SQL block with “/” and display the value of the bind variables by using the PRINT command.
d. Execute and save your script file as lab_02_05_soln.sql. Sample output is as follows: