1 / 27

Kintamųjų deklaravimas PL/SQL

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.

vevina
Download Presentation

Kintamųjų deklaravimas PL/SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kintamųjų deklaravimas PL/SQL Paskaita 2

  2. Temos • Vardai (žymėjimai arba identifikatoriai) • Kintamųjų naudojimas • Kintamųjų paskelbimas ir inicializacija • Duomenų tipai • %TYPEatributas • Bind (Įstatomi)kintamieji

  3. SELECT first_name, department_id INTO v_fname,v_deptnoFROM … v_fname Jennifer v_deptno 10 Kintamųjų naudojimas • Kintamieji g. b. naudojami: • Laikinam duomenų saugojimui • Saugomų reikšmių manipuliacijai • Pakartotinam naudojimui

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

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

  6. 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;

  7. 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; / 1 DECLARE v_myName VARCHAR2(20):= 'John'; BEGIN v_myName := 'Steven'; DBMS_OUTPUT.PUT_LINE('My name is: '|| v_myName); END; / 2

  8. 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; /

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

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

  11. 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 kaipNOT NULLir CONSTANT • Inicializuokite kintamąsias operatorių (:=) ir DEFAULTpagalba: • Deklaruokite po vieną vardą arba žymėjimą vienoje eilutėje v_myName VARCHAR2(20):='John'; v_myName VARCHAR2(20) DEFAULT 'John';

  12. PL/SQL Kintamųjų paskelbimo rekomendacijos • Kintamasis neturi būti pavadintas tuo pačiu vardu kaip DB lentelės stulpelio vardas • . • Nuduokite NOT NULLapribojimą 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; /

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

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

  15. Pagrindiniai skaliariniai duomenų tipai • DATE • TIMESTAMP • TIMESTAMP WITH TIME ZONE • TIMESTAMP WITH LOCAL TIME ZONE • INTERVAL YEAR TO MONTH • INTERVAL DAY TO SECOND

  16. 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; ...

  17. %TYPEatributas • Naudojamas: • Deklaruoti kintamąjį pagal duomenų bazės stulpelio tipą • Prieš tai deklaruoto kintamojo tipą • Prieš %TYPErašome: • Duomenų bazės lentelės ir stulpelio vardus • Jau deklaruotojo kintamojo vardą

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

  19. Boolean kintamųjų dekladavimas • Tik TRUE, FALSE, ir NULLgali būti priskirti Boolean tipui. • Sąlyginėse išraiškose naudojami loginiai operatoriai AND, ORir 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 datosišraiškos.

  20. Bind kintamieji • Bind kintamieji tai: • Aplinkos kintamieji • Kartais vadinami hostkintamieji • Sukuriamos raktinio žodžio VARIABLEpagalba • Naudojami SQL sakiniuose ir PL/SQL blokuose • Pasiekiamos po PL/SQL bloko vykdymo • Nuoroda į Bind kintamąjį yra (:)

  21. 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;

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

  23. LOBduomenų tipas Book (CLOB) Photo (BLOB) Movie (BFILE) NCLOB

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

  25. Santrauka • Sužinojome: • Vardai (žymėjimai arba identifikatoriai) • Kintamųjų naudojimas • Kintamųjų paskelbimas ir inicializacija • Duomenų tipai • %TYPEatributas • Bind (surišimo)kintamieji

  26. 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. number1to7 2. Kintamųjų deklaravimas ir inicializavimas: a. number_of_copiesPLS_INTEGER; b. printer_name constant VARCHAR2(10); c. deliver_toVARCHAR2(10):=Johnson; d. by_whenDATE:= CURRENT_DATE+1;

  27. 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:

More Related