1 / 12

PL/SQL

PL/SQL. Programowanie baz danych. Początki. PL/SQL jest proceduralnym językiem programowania wprowadzonym przez firmę Oracle w 5 dystrybucji systemu baz danych(Oracle Database 6)

brook
Download Presentation

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. PL/SQL Programowanie baz danych

  2. Początki • PL/SQL jest proceduralnym językiem programowania wprowadzonym przez firmę Oracle w 5 dystrybucji systemu baz danych(Oracle Database 6) • Programy pisane w PL/SQL są podzielone na struktury zwane blokami, z których każdy zawiera instrukcje PL/SQL i SQL

  3. Blok PL/SQL Set serveroutput on Declare Instrukcje deklarujące (deklarują zmienne używane w pozostałej części bloku PL/SQL. Blok ten jest opcjonalny) Begin Instrukcje wykonywane (faktyczne instrukcje wykonywane np.. Pętla, instrukcja warunkowa etc.) Exception Instrukcje obsługujące wyjątki (instrukcje obsługujące błędy wykonywania, które mogą wystąpić po uruchomieniu bloku. Blok ten jest opcjonalny) End; / Każda instrukcja kończy się średnikiem (;)

  4. Przykładowy blok PL/SQL DECLARE szerokosc integer; wysokosc integer := 2; pole integer := 6; BEGIN --szerokość ma byc równa ilorazowi pola i wysokości szerokosc:=pole/wysokosc; dbms_output.put_line('szerokość= ' || szerokość || `centymetrów`); EXCEPTION when zero_divide then dbms_output.put_line('Dzielenie przez zero'); end; /

  5. Wybrane typy danych (nie odpowiadają dokładnie analogicznym typom w SQL) number(precyzja, skala) – liczba Integer – wartości całkowite do 38 cyfr Pls_integer – wydajniejsza od dwóch poprzednich(zakres ponad 4 miliardy) Varchar2 – ciągi znakowe o zmiennej długości od 1 – 32767 Clob– do przechowywania dłuższych ciągów niż możliwości varchar2 char– typ o stałej długości. Niedobór uzupełniany spacjami Date – data i godzina Boolean – może przyjąć wartość TRUE, FALSE, NULL Komentarze: (--) – do jednej linijki tekstu (/* … */) – do wielu linijek tekstu

  6. Instrukcja if – then - else Przykładzik: declare i number:=1; begin if i>2 then dbms_output.put_line('i jest większe od 2 i wynosi ' ||i); elsif i<2 then dbms_output.put_line('i jest mniejsze od 2 i wynosi ' ||i); else dbms_output.put_line('Wartość i wynosi ' ||i); end if; end; Zwracam uwagę na wykorzystanie funkcji elsif

  7. Pętla loop Declare i number:=1; Begin loop i:=i+1; dbms_output.put_line(‘Pętla przybiera wartość ‘ || i); exit when i=10; end loop; End; Należy pamiętać by w bloku znalazło się polecenie kończące pętlę, gdyż może się to skończyć nieskończonym wykonywaniem bloku W pracy na „czystym” serwerze możliwe, że trzeba by zmienić typ zmiennej i poleceniem to_char(i), aby wyświetlić wyniki.

  8. Pętla for –loop(1) Begin for i in 1..10 loop dbms_output.put_line(‘Wartość zmiennej wynosi ‘ || i); End loop; End; Proszę zwrócić uwagę, że zmienna i nie musi być zadeklarowana ani inicjowana

  9. Pętla for –loop(2) Begin for i in reverse 1..10 loop dbms_output.put_line(‘Wartość zmiennej wynosi ‘ || i); End loop; End; Słowo kluczowe reverse odwraca kierunek iteracji. Do wcześniejszego wyjścia z pętli w każdym przypadku możemy użyć funkcji exit when [warunek]

  10. Pętla while -loop Declare i number:=0; Begin while i<10 loop dbms_output.put_line(‘Wartość zmiennej wciąż wynosi mniej niż 10 gdyż jest równe ‘ || i); i:=i+1; End loop; End; Należy pamiętać o kontrolowaniu wartości zmiennej, gdyż w innym wypadku znów możemy wpaść w niekończącą się pętlę.

  11. Polecenie GOTO DECLARE tekst VARCHAR2(100); BEGIN <<pierwszy>> tekst := 'Ala '; GOTO drugi; <<wyswietl>> DBMS_OUTPUT.PUT_LINE(tekst); GOTO koniec; <<drugi>> tekst := tekst||'ma '; GOTO trzeci; <<trzeci>> tekst := tekst||'kota.'; GOTO wyswietl; <<koniec>> -- Polecenie NULL nie wykonuje żadnej akcji. NULL; END; Etykieta musi poprzedzać polecenie wykonywane. GOTO nie może przeskakiwać warunkowych części poleceń IF-THEN-ELSE, CASE, do polecenia LOOP i do bloku podrzędnego.

  12. Zakończenie Pojęcie tego tematu gwarantuje powołanie do reprezentacji DREAM TEAM SQL, którą prowadzi ceniony na całym świecie fachowiec od naturalizowania Kolumbijczyków. Oto on:

More Related