Kintamj deklaravimas PLSQL Paskaita 2 Temos Vardai ymjimai

  • Slides: 27
Download presentation
Kintamųjų deklaravimas PL/SQL Paskaita 2

Kintamųjų deklaravimas PL/SQL Paskaita 2

Temos • • • Vardai (žymėjimai arba identifikatoriai) Kintamųjų naudojimas Kintamųjų paskelbimas ir inicializacija

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ų

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_deptno FROM … Jennifer 10 v_fname v_deptno

Vardai arba Žymėjimai • • • Turi prasidėti raide Gali susidėti iš raidžių ir

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

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ė: identifier [CONSTANT] datatype [NOT NULL] [: =

PL/SQL Kintamųjų paskelbimas ir inicializacija • Sintaksė: identifier [CONSTANT] datatype [NOT NULL] [: = | DEFAULT expr]; • Pavyzdys: DECLARE v_hiredate v_deptno v_location c_comm DATE; NUMBER(2) NOT NULL : = 10; VARCHAR 2(13) : = 'Atlanta'; CONSTANT NUMBER : = 1400;

PL/SQL Kintamųjų paskelbimas ir inicializacija 1 2 DECLARE v_my. Name VARCHAR 2(20); BEGIN DBMS_OUTPUT.

PL/SQL Kintamųjų paskelbimas ir inicializacija 1 2 DECLARE v_my. Name VARCHAR 2(20); BEGIN DBMS_OUTPUT. PUT_LINE('My name is: '|| v_my. Name); v_my. Name : = 'John'; DBMS_OUTPUT. PUT_LINE('My name is: '|| v_my. Name); END; / DECLARE v_my. Name VARCHAR 2(20): = 'John'; BEGIN v_my. Name : = 'Steven'; DBMS_OUTPUT. PUT_LINE('My name is: '|| v_my. Name); END; /

Apribojimai DECLARE v_event VARCHAR 2(15); BEGIN v_event : = q'!Father's day!'; DBMS_OUTPUT. PUT_LINE('3 rd

Apribojimai DECLARE v_event VARCHAR 2(15); BEGIN v_event : = q'!Father's day!'; DBMS_OUTPUT. PUT_LINE('3 rd Sunday in June is : '|| v_event ); v_event : = q'[Mother's day]'; DBMS_OUTPUT. PUT_LINE('2 nd Sunday in May is : '|| v_event ); END; /

Kintamųjų tipai • PL/SQL kintamieji: • • Skaliariniai Sudėtinis Referencinis Large object (LOB) •

Kintamųjų tipai • PL/SQL kintamieji: • • Skaliariniai Sudėtinis Referencinis Large object (LOB) • Ne-PL/SQL kintamieji: Bind kintamieji

Kintamųjų tipai TRUE 25 -JAN-01 Snow White Long, long ago, in a land far,

Kintamųjų tipai TRUE 25 -JAN-01 Snow White Long, long ago, in a land far, far away, there lived a princess called Snow White. . . 256120. 08 Atlanta

PL/SQL Kintamųjų paskelbimo ir inicializacijos rekomendacijos • Sukurti susitarimai kaip vadinti žymėjimus ir kt.

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 v_my. Name VARCHAR 2(20): ='John'; DEFAULT pagalba: v_my. Name VARCHAR 2(20) DEFAULT 'John'; • Deklaruokite po vieną vardą arba žymėjimą vienoje eilutėje

PL/SQL Kintamųjų paskelbimo rekomendacijos • Kintamasis neturi būti pavadintas tuo pačiu vardu kaip DB

PL/SQL Kintamųjų paskelbimo rekomendacijos • Kintamasis neturi būti pavadintas tuo pačiu vardu kaip DB lentelės stulpelio vardas • . DECLARE employee_id NUMBER(6); BEGIN SELECT employee_id INTO employee_id FROM employees WHERE last_name = 'Kochhar'; END; / • Nuduokite NOT NULL apribojimą jeigu kintamasis turi būti inicializuotas.

Skaliariniai duomenų tipai • Priima vienintelę reikšmę • Neturi sudėtingos vidinės struktūros TRUE 25

Skaliariniai duomenų tipai • Priima vienintelę reikšmę • Neturi sudėtingos vidinės struktūros TRUE 25 -JAN-01 The soul of the lazy man desires, and he has nothing; but the soul of the diligent shall be made rich. 256120. 08 Atlanta

Pagrindiniai skaliariniai duomenų tipai • • CHAR [(maks. ilgis)] VARCHAR 2 (maks. ilgis) NUMBER

Pagrindiniai skaliariniai duomenų tipai • • CHAR [(maks. ilgis)] VARCHAR 2 (maks. ilgis) NUMBER [(tikslumas, mastelis)] BINARY_INTEGER PLS_INTEGER BOOLEAN BINARY_FLOAT BINARY_DOUBLE

Pagrindiniai skaliariniai duomenų tipai • • • DATE TIMESTAMP WITH TIME ZONE TIMESTAMP WITH

Pagrindiniai skaliariniai duomenų tipai • • • DATE 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 v_count_loop v_dept_total_sal v_orderdate c_tax_rate v_valid. .

Skaliarinių duomenų tipų deklaravimas • Pavyzdys: DECLARE v_emp_job v_count_loop v_dept_total_sal v_orderdate c_tax_rate v_valid. . . VARCHAR 2(9); BINARY_INTEGER : = 0; NUMBER(9, 2) : = 0; DATE : = SYSDATE + 7; CONSTANT NUMBER(3, 2) : = 8. 25; BOOLEAN NOT NULL : = TRUE;

%TYPE atributas • Naudojamas: • Deklaruoti kintamąjį pagal duomenų bazės stulpelio tipą • Prieš

%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ė identifier table. column_name%TYPE; • Pavyzdys. . .

Kintamųjų deklaravimas su %TYPE atributu • Sintaksė identifier table. column_name%TYPE; • Pavyzdys. . . emp_lname. . . employees. last_name%TYPE; . . . balance min_balance. . . NUMBER(7, 2); balance%TYPE : = 1000;

Boolean kintamųjų dekladavimas • Tik TRUE, FALSE, ir NULL gali būti priskirti Boolean tipui.

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

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 NUMBER BEGIN SELECT salary INTO : b_emp_salary

Bind kintamųjų spausdinimas • Pavyzdys: VARIABLE b_emp_salary NUMBER BEGIN SELECT salary INTO : b_emp_salary FROM employees WHERE employee_id = 178; END; / PRINT b_emp_salary SELECT first_name, last_name FROM employees WHERE salary=: b_emp_salary;

Bind kintamųjų spausdinimas • Pavyzdys: VARIABLE b_emp_salary NUMBER SET AUTOPRINT ON DECLARE v_empno NUMBER(6):

Bind kintamųjų spausdinimas • Pavyzdys: VARIABLE b_emp_salary NUMBER SET AUTOPRINT ON DECLARE v_empno NUMBER(6): =&empno; BEGIN SELECT salary INTO : b_emp_salary FROM employees WHERE employee_id = v_empno; END; Output: 7000

LOB duomenų tipas Book (CLOB) Photo (BLOB) Movie (BFILE) NCLOB

LOB duomenų tipas Book (CLOB) Photo (BLOB) Movie (BFILE) NCLOB

Sudėtinis duomenų tipas TRUE 23 -DEC-98 PL/SQL table structure 1 2 3 4 SMITH

Sudėtinis duomenų tipas TRUE 23 -DEC-98 PL/SQL table structure 1 2 3 4 SMITH JONES NANCY TIM VARCHAR 2 PLS_INTEGER ATLANTA PL/SQL table structure 1 2 3 4 5000 2345 12 3456 NUMBER PLS_INTEGER

Santrauka • Sužinojome: • • • Vardai (žymėjimai arba identifikatoriai) Kintamųjų naudojimas Kintamųjų paskelbimas

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 2 1. Vardai (žymėjimai arba identifikatoriai): a. today b. last_name c. today’s_date d.

Praktika 2 1. 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. number 1 to 7 2. Kintamųjų deklaravimas ir inicializavimas: a. number_of_copies PLS_INTEGER; b. printer_name constant VARCHAR 2(10); c. deliver_to VARCHAR 2(10): =Johnson; d. by_when DATE: = CURRENT_DATE+1;

Praktika 2 5. Edit the lab_02_04_soln. sql script. a. Add code to create two

Praktika 2 5. 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: