plsql.pdf
(
580 KB
)
Pobierz
Microsoft Word - plsql.doc
!
"#%#
##"&’’%
1.
UWAGI WST
PNE....................................................................................................3
2.
BLOKI ANONIMOWE ...............................................................................................3
2.1. Składnia ................................................................................................................................................................ 3
2.2. Przykłady .............................................................................................................................................................. 4
2.3. Najprostsze programy ......................................................................................................................................... 5
2.4. Uruchamianie ....................................................................................................................................................... 6
3.
INSTRUKCJE WARUNKOWE, INSTRUKCJA SKOKU I P
TLE.............................8
3.1. IF – THEN – ELSE .............................................................................................................................................. 8
3.2. LOOP .................................................................................................................................................................... 8
3.3. FOR – LOOP ........................................................................................................................................................ 9
3.4. WHILE – LOOP .................................................................................................................................................. 9
3.5. GO TO................................................................................................................................................................... 9
4.
KURSORY...............................................................................................................10
4.1. Składnia .............................................................................................................................................................. 10
4.2. Kursory niejawne ............................................................................................................................................... 10
4.3. Kursory jawne .................................................................................................................................................... 12
4.4. Kursory z parametrami ..................................................................................................................................... 14
5.
OBSŁUGA WYJ
TKÓW ........................................................................................15
5.1. Przykłady ............................................................................................................................................................ 15
5.2. Funkcje SQLCODE i SQLERRM .................................................................................................................... 17
5.3. Procedura RAISE_APPLICATION_ERROR ................................................................................................ 19
5.4. Zestawienie predefiniowanych wyj
tków systemowych ................................................................................. 20
6.
PROCEDURY I FUNKCJE ......................................................................................22
6.1. Składnia .............................................................................................................................................................. 22
6.2. Najprostsza procedura....................................................................................................................................... 23
6.3. Parametry procedur........................................................................................................................................... 24
6.4. Typy zmiennych IN, OUT oraz IN OUT .......................................................................................................... 25
6.5. Inne przykłady procedur ................................................................................................................................... 27
6.6. Przykłady funkcji ............................................................................................................................................... 29
7.
WYKORZYSTANIE PAKIETÓW W CELU ORGANIZACJI KODU.........................30
7.1. Składnia .............................................................................................................................................................. 30
przedmiot: Bazy danych, jzyk PL/SQL
opracował: dr in. Artur Gramacki
1
7.2. Przykłady ............................................................................................................................................................ 30
7.3. Kompilowanie i usuwanie procedur, funkcji i pakietów................................................................................. 33
7.4. Gdzie ORACLE przechowuje
ródła PL/SQL ................................................................................................ 34
8.
KOLEKCJE .............................................................................................................35
8.1. Wst
p................................................................................................................................................................... 35
8.2. Przykłady ............................................................................................................................................................ 35
9.
DYNAMICZNY SQL ................................................................................................41
9.1. Instrukcja EXECUTE IMMEDIATE .............................................................................................................. 41
9.2. Zmienne kursorowe ........................................................................................................................................... 43
9.3. Pewien bardziej zło
ony przykład u
ycia zmiennych kursorowych .............................................................. 45
9.4. Dynamiczny SQL z wykorzystaniem pakietu DBMS_SQL............................................................................ 47
10.
WYZWALACZE BAZODANOWE ...........................................................................47
10.1. Składnia (uproszczona).................................................................................................................................... 47
10.2. Mo
liwe typy wyzwalaczy................................................................................................................................ 47
10.3. Przykłady .......................................................................................................................................................... 48
10.4. Wł
czanie, wył
czanie i kasowanie, kompilowanie wyzwalaczy.................................................................. 49
10.5. Wy
wietlanie informacji na temat wyzwalaczy ............................................................................................. 49
10.6. Mutuj
ce tablice (ang.
mutating tables
) .......................................................................................................... 50
10.7. Przykład z jedn
tabel
................................................................................................................................... 51
10.8. Bardziej zło
ony przykład z tabelami mutuj
cymi ....................................................................................... 52
11.
MODEL SUMMIT2...................................................................................................56
11.1. Omówienie ........................................................................................................................................................ 56
11.2. Skrypt................................................................................................................................................................ 62
przedmiot: Bazy danych, jzyk PL/SQL
opracował: dr in. Artur Gramacki
2
#$ (")"*
Opracowanie omawia podstawowe elementy j
zyka PL/SQL na bazie systemu ORACLE. W
zamierzeniu autora ma ono stanowi
materiał pomocniczy do prowadzenia wykładu oraz
wicze
laboratoryjnych z przedmiotu
Bazy danych.
Opracowanie mo
e by
materiałem do samodzielnego
studiowania, jednak nale
y mie
wiadomo
,
e brak jest w nim bardziej systematycznego
omówienia j
zyka PL/SQL. J
zyk ten omówiono posługuj
c si
du
liczb
przykładów,
ograniczaj
c natomiast do minimum komentarz słowny. Starano si
przedstawi
jedynie jego
najwa
niejsze elementy, najbardziej przydatne w praktyce. Wiele pomniejszych kwestii jest
pomini
tych lub omówionych tylko pobie
nie.
Wszystkie przykłady testowane były w systemie ORACLE, w wersji 8.1.7, jednak powinny bez
adnych zmian działa
równie
w innych wersjach – zarówno wcze
niejszych jak i pó
niejszych.
Szczegółowy opis wszystkich polece
j
zyka PL/SQL w systemie ORACLE mo
na znale
w
dokumentacji:
PL/SQL User’s Guide and Reference.
Zdecydowania wi
kszo
przykładów operuje na demonstracyjnym modelu o nazwie SUMMIT2,
który jest standardowo instalowany w systemie ORACLE, wersja 8.x. Dlatego te
nale
y upewni
si
,
e skrypt
summit2.sql
wykonał si
bezbł
dnie. Krótkie omówienie modelu SUMMIT2
zamieszczono na ko
cu niniejszego opracowania.
Wszystkie przykłady pokazane w opracowaniu zostały wykonane w programie SQL*Plus. Poni
ej
pokazano wygl
d ekranu po prawidłowy uruchomieniu programu oraz po prawidłowym poł
czeniu
si
z jego pomoc
do systemu ORACLE.
W zale
no
ci od konfiguracji systemu napisy mog
by
w j
zyku innym ni
polski – domy
lnie jest
to oczywi
cie j
zyk angielski.
SQL*Plus: Release 8.1.7.0.0
- Production on Wto Mar 23 08:14:21 2004
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Podaj nazw
u
ytkownika: summit2
Podaj hasło:
Poł
czony z:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
SQL>
&$ +"
[DECLARE
sekcja deklaracji]
BEGIN
sekcja instrukcji
[EXCEPTION
sekcja obsługi wyj
tków]
END;
przedmiot: Bazy danych, jzyk PL/SQL
opracował: dr in. Artur Gramacki
3
Bloki zagnie
d
one (ang.
nested blocks
).
[DECLARE
sekcja deklaracji]
BEGIN
sekcja instrukcji
[BEGIN
...sekcja instrukcji
[EXCEPTION
...sekcja obsługi wyj
tków]
END;]
[EXCEPTION
...sekcja obsługi wyj
tków]
EBD;
Sekcja
DECLARE
– składnia.
DECLARE
nazwa_zmiennej typ_zmiennej[długo
]
[CONSTANT]
[:= | DEFAULT warto
_domy
lna]
[NOT NULL];
Przykład 1
Deklarowanie zmiennych i stałych – przykłady.
-- Identyfikatory NIE MOG
zaczyna
si
od litery i by
-- dłu
sze ni
30 znaków. Identyfikatory nie mog
brzmie
-- tak samo jak słowa zarezerwowane (np. DATE, BEGIN)
-- Zmienna zadeklarowana, lecz nie zainicjowana posiada warto
NULL.
-- Poni
sze trzy deklaracje s
równowa
ne.
licznik NUMBER(4);
licznik NUMBER(4) := NULL;
licznik NUMBER(4) DEFAULT NULL;
-- Nadanie warto
ci zmiennym przez przypisanie.
ilosc NUMBER(2) := 50;
-- Mo
na te
tak:
ilosc_2 NUMBER(2) DEFAULT 100;
-- Literały (w tym daty) ujmujemy w apostrofy.
imie VARCHAR2(25) DEFAULT 'Artur';
czy_instalowac CHAR(3) := 'TAK';
data_domyslna DATE := '01-01-2000';
-- Warto
domy
lna
-- SYSDATE zwraca bie
c
dat
oraz czas systemowy
-- z dokładno
ci
do jednej sekundy
data_zatr DATE DEFAULT SYSDATE NOT NULL;
-- Typ logiczny. Uwaga: j
zyk SQL nie posiada takiego typu.
flaga BOOLEAN := FALSE;
-- Stałe
-- Poni
ej zadeklarowanych stałych NIE MO
NA zmienia
w programie.
przedmiot: Bazy danych, jzyk PL/SQL
opracował: dr in. Artur Gramacki
4
-- Jest to wygodny sposób na unikanie prostych bł
dów.
grudzien CONSTANT NUMBER(2) := 31;
uczelnia CONSTANT VARCHAR2(100) := 'Uniwersytet Zielonogórski';
drobinka CONSTANT NUMBER := 0.000001;
Typy danych.
Uwaga: typy danych w PL/SQL nie odpowiadaj
dokładnie analogicznym typom w SQL.
-----------------------------------------------------------------------------
NUMBER -- nazwa_zmiennej NUMBER [ ( precyzja [ ,skala ] ) ]
-- przykłady: NUMBER, NUMBER(10), NUMBER(10,3)
INTEGER -- Warto
ci całkowite, do 38 cyfr.
PLS_INTEGER -- Wydajniejsza ni
INTEGER i NUMBER,
-- od –2.147.483.647 do 2.147.483.647
-----------------------------------------------------------------------------
VARCHAR2 -- Przechowuje ci
gi o zmiennej długo
ci od 1 do 32767 bajtów.
-- Uwaga: w tabelach ten typ mo
e mie
maksymalnie 4000 bajtów.
-- Przechowywanie dłu
szych ci
gów wymaga typu CLOB.
VARCHAR -- Nie zaleca si
stosowa
. U
ywa
raczej VARCHAR2.
CHAR -- Typ o stałej długo
ci. Niedobór uzupełniany spacjami.
-----------------------------------------------------------------------------
DATE -- Data i godzina, dokładno
do 1 sek.
-----------------------------------------------------------------------------
BOOLEAN -- Mo
e przyjmowa
warto
TRUE, FALSE, NULL.
-----------------------------------------------------------------------------
RECORD
TABLE
VARRAY
-----------------------------------------------------------------------------
REF CURSOR
-----------------------------------------------------------------------------
BFILE
BLOB
CLOB
NCLOB
Przykład 2
Program "nic-nie-robi
cy".
BEGIN
null;
END;
Przykład 3
Program "Hello, world".
BEGIN
-- To jest komentarz.
DBMS_OUTPUT.PUT_LINE(‘Hello, world’);
/*
To te
jest komentarz. Jest on bardziej
przydatny, gdy trzeba skomentowa
wiele linii tekstu.
*/
END;
przedmiot: Bazy danych, jzyk PL/SQL
opracował: dr in. Artur Gramacki
5
Plik z chomika:
jacek_040
Inne pliki z tego folderu:
SQL.doc
(281 KB)
plsql_fsql.ppt
(62 KB)
SQL10G.pdf
(780 KB)
sql2.pdf
(224 KB)
plsql.pdf
(580 KB)
Inne foldery tego chomika:
5_VoIP
Asterisk
eng
eng opisy urzadzen
Fax & Telephony
Zgłoś jeśli
naruszono regulamin