1 / 22

Vykdomųjų komandų rašymas

Vykdomųjų komandų rašymas. Paskaita 3. Temos. Žodinių vienetų naudojimas PL/SQL bloke SQL funkcijų naudojimas PL/SQL bloke Tiesioginis ir netiesioginis duomenų tipo konvertavimas Įdėtinių blokų rašymas ir žymėjimų naudojimas su kintamaisiais Programavimo rekomendacijos.

britain
Download Presentation

Vykdomųjų komandų rašymas

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. Vykdomųjų komandų rašymas Paskaita 3

  2. Temos • Žodinių vienetų naudojimas PL/SQL bloke • SQL funkcijų naudojimas PL/SQL bloke • Tiesioginis ir netiesioginis duomenų tipo konvertavimas • Įdėtinių blokų rašymas ir žymėjimų naudojimas su kintamaisiais • Programavimo rekomendacijos

  3. Žodinių vienetų naudojimas PL/SQL bloke • Žodinis vienetas: • Jų pagrindu kuriami visi PL/SQL blokai • Tai ženklų, tokių kaip raidės, skaičiai, simboliai, tabuliacija, tarpas ir grąžinimas į vieną poziciją seka • Žodiniai vienetai gali būti suskirstyti į: • Vardus (Identifiers): v_fname, c_percent • Skirtukus (Delimiters): ; , +, - • Žodžius (Literals): John, 428, True • Komentarus (Comments): --, /* */

  4. PL/SQL Bloko sintaksė ir jo rašymo rekomendacijos • Žodžiai • Žodžiai susidedantys iš raidžių arba datos turi būti įterpti į viengubas kabutes • Skaičiai gali būti užrašomi paprasta arba moksline forma • Sakiniai gali tęstis per kelias eilutes name := 'Henderson'; 1 2 3

  5. SQL funkcijos PL/SQL-e • Galimos procedūriniuose sakiniuose: • Vienos eilutės skaitinės funkcijos • Vienos eilutės simbolinės funkcijos • Duomenų tipo konvertavimo funkcijos • Datos funkcijos • “Timestamp” • GREATEST ir LEAST • Kitos funkcijos • Negalimos procedūriniuose sakiniuose: • DECODE • Grupavimo funkcijos (AVG,MIN,MAX)

  6. Kodo komentavimas • Vienos eilutės komentarai(--). • Kelių eilučių komentarai / * ir */ • Pavyzdys: DECLARE ... v_annual_sal NUMBER (9,2); BEGIN /* Compute the annual salary based on the monthly salary input from the user */ v_annual_sal := monthly_sal * 12; --The following line displays the annual salary DBMS_OUTPUT.PUT_LINE(v_annual_sal); END; /

  7. SQL funkcijos PL/SQL-e: Pavyzdžiai • Eilutės ilgio nustatymas: • Vardo konvertavimasį mažąsias raides : v_desc_size INTEGER(5); v_prod_description VARCHAR2(70):='You can use this product with your radios for higher frequency'; -- get the length of the string in prod_description v_desc_size:= LENGTH(v_prod_description); v_ename:= LOWER (v_ename);

  8. Sekų naudojimas PL/SQL kode • Nuo 11g: • Iki 11g: DECLARE v_new_id NUMBER; BEGIN v_new_id := my_seq.NEXTVAL; END; / DECLARE v_new_id NUMBER; BEGIN SELECT my_seq.NEXTVAL INTO v_new_id FROM Dual; END; /

  9. Duomenų tipo konvertavimas • Konvertuoja duomenis į palyginamus duomenų tipus • Yra dviejų tipų: • Tiesioginis arba dinaminis (Implicit conversion) • Netiesioginis (Explicit conversion) • Funkcijos: • TO_CHAR • TO_DATE • TO_NUMBER • TO_TIMESTAMP

  10. Duomenų tipo konvertavimas 1 date_of_joining DATE:= '02-Feb-2000'; 2 date_of_joining DATE:= 'February 02,2000'; date_of_joining DATE:= TO_DATE('February 02,2000','Month DD, YYYY'); 3

  11. Įdėtiniai blokai • PL/SQL blokai gali būti įdėtiniai bet kurioje vietoje kur galimi vykdomieji sakiniai. • Vykdomoje sekcijoje (BEGIN … END) • Išimčių sekcijoje (EXCEPTION).

  12. Įdėtiniai blokai : Pavyzdys DECLARE v_outer_variable VARCHAR2(20):='GLOBAL VARIABLE'; BEGIN DECLARE v_inner_variable VARCHAR2(20):='LOCAL VARIABLE'; BEGIN DBMS_OUTPUT.PUT_LINE(v_inner_variable); DBMS_OUTPUT.PUT_LINE(v_outer_variable); END; DBMS_OUTPUT.PUT_LINE(v_outer_variable); END;

  13. Kintamojo matomumo ir veikimo sritis DECLARE v_father_name VARCHAR2(20):='Patrick'; v_date_of_birth DATE:='20-Apr-1972'; BEGIN DECLARE v_child_name VARCHAR2(20):='Mike'; v_date_of_birth DATE:='12-Dec-2002'; BEGIN DBMS_OUTPUT.PUT_LINE('Father''s Name: '||v_father_name); DBMS_OUTPUT.PUT_LINE('Date of Birth: '||v_date_of_birth); DBMS_OUTPUT.PUT_LINE('Child''s Name: '||v_child_name); END; DBMS_OUTPUT.PUT_LINE('Date of Birth: '||v_date_of_birth); END; / 1 2

  14. Vardo žymėjimas BEGIN <<outer>> DECLARE v_father_name VARCHAR2(20):='Patrick'; v_date_of_birth DATE:='20-Apr-1972'; BEGIN DECLARE v_child_name VARCHAR2(20):='Mike'; v_date_of_birth DATE:='12-Dec-2002'; BEGIN DBMS_OUTPUT.PUT_LINE('Father''s Name: '||v_father_name); DBMS_OUTPUT.PUT_LINE('Date of Birth: ' ||outer.v_date_of_birth); DBMS_OUTPUT.PUT_LINE('Child''s Name: '||v_child_name); DBMS_OUTPUT.PUT_LINE('Date of Birth: '||v_date_of_birth); END; END; ENDouter;

  15. Kintamojo matomumo sritis BEGIN <<outer>> DECLARE v_sal NUMBER(7,2) := 60000; v_comm NUMBER(7,2) := v_sal * 0.20; v_message VARCHAR2(255) := ' eligible for commission'; BEGIN DECLARE v_sal NUMBER(7,2) := 50000; v_comm NUMBER(7,2) := 0; v_total_comp NUMBER(7,2) := v_sal + v_comm; BEGIN v_message := 'CLERK not'||v_message; outer.v_comm := v_sal * 0.30; END; v_message := 'SALESMAN'||v_message; END; END outer; / 1 2

  16. PL/SQL Operatoriai • Loginiai • Aritmetiniai • Sujungimo • Skliaustai operacijų eiliškumui nurodyti • Laipsnio (**) Tokie kaip SQL

  17. PL/SQL Operatoriai: Pavyzdžiai • Ciklo skaitliuko padidinimas. • Priskiria reikšmę BOOLEAN vėliavėlei. • Tikrina ar darbuotojo numeris turi reikšmę. loop_count := loop_count + 1; good_sal := sal BETWEEN 50000 AND 150000; valid := (empno IS NOT NULL);

  18. Programavimo rekomendacijos • Kodo palaikymą lengvina: • Kodo dokumentacija naudojant komentarus • Kodo rašymas naudojant didžiąsias / mažąsias raides pagal Oracle rekomendacijas • Sukurti susitarimai kaip vadinti žymėjimus ir kt. objektus • Atitraukimai lengvinantys kodo skaitymą

  19. Kodo atitraukimai • Kad būtų aiškiau, kiekvieną kodo lygį reikia atitraukti DECLARE deptno NUMBER(4); location_id NUMBER(4); BEGIN SELECT department_id, location_id INTO deptno, location_id FROM departments WHERE department_name = 'Sales'; ... END; / BEGIN IF x=0 THEN y:=1; END IF; END; /

  20. Klausimas • PL/SQL išraiškose galime nauduoti daugumą vienos eilutės SQL funkcijų, tokias kaip skaičių, simbolių, konvertavimo ir datos vienos eilutės funkcijas. • True • False

  21. Santrauka • Sužinojome : • PL/SQL bloko sintaksę ir kodavimo rekomendacijas • Kaip teisingai naudoti žymėjimus/vardus • PL/SQL bloko struktūrą: įdėtiniai bloko ir srities taisyklės • PL/SQL programavimas • Funkcijos • Duomenų tipo konvertavimas • Operatoriai • Susitarimai ir rekomendacijos

  22. Praktika 3: • This practice covers the following topics: • Reviewing scoping and nesting rules • Writing and testing PL/SQL blocks

More Related