bazy danych druga id 81754 Nieznany (2)

background image

Bazy danych, druga zerówka

13.01.2014

1

Wykład 1

1.1

Czym jest SQL * PLUS?

Jest to terminalowy klient Oracle SQL, interaktywny interfejs tekstowy (linia komend).

1.2

Zmienna tymczasowa

Zmienna przechowująca wartość, krotkę lub całą tabelę do wykorzystania w obrębie

danego połączenia (po wylogowaniu się jest kasowana).

Globalna tymczasowa tablica:

CREATE GLOBAL TEMPORARY TABLE n a z w a t a b l i c y (

w a r t o s c t y p .
w a r t o s c t y p
) ;

Pobranie krotki do zmiennej tymczasowej

SELECT INTO z m i e n n a FROM t a b e l a WHERE w a r u n e k ;

poprawnie?

1.3

Podać 3 sposoby tworzenia zmiennej zdefiniowanej

DEFINE z m i e n n a = w a r t o s c

O to chodzi?

1.4

Blok anonimowy

Blok instrukcji bez nazwy, do wykonania od razu.

BEGIN

−− i n s t r u k c j e

END;

1

background image

1.5

Które instrukcje SQL można umieszczać w blokach PL/SQL?

wszystkie poza zarządzeniem prawami chyba

1.6

Jak wyświetlić wartość zmiennej w bloku PL/SQL?

DBMS OUTPUT . PUT LINE ( n a z w a z m i e n n e j ) ;

2

Wykład 2

2.1

Instrukcja SQL%ROWCOUNT

Ilość wierszy (dodanych/zmienionych/pobranych/usuniętych) w ostatnim wyrażeniu

SQL.

2.2

Różnice między zmienną typu wierszowego a zmienną typu
rekordowego

Typ rekordowy może być zagnieżdżony, wierszowy składać się może tylko z prymitywów.

Wierszowy reprezentuje bezpośrednio wiersz w tabeli.

Rekordowy:

TYPE T y p r e k p r a c I S RECORD

( n u m e r p r a c NUMBER( 4 ) NOT NULL,

n a z w i s k o VARCHAR2( 4 0 ) NOT NULL,
Z a r o b k i NUMBER( 8 , 2 ) ,

Num dzia ł u NUMBER( 4 ) ) ;

r e k o r d p r a c

T y p r e k p r a c ;

Wierszowy:

t y p w i e r s z o w y

n a z w a t a b e l i%ROWTYPE;

Coś więcej?

2.3

Różnice między funkcją a procedurą

Funkcja coś zwraca (wartość/krotka/tabela), procedura niczego nie zwraca. Podobnie

jak w Pascalu.

2.4

Procedura składowana

Procedura składowana to procedura będąca po stronie serwera, nie klienta.

CREATE OR REPLACE PROCEDURE n a z w a p r o c e d u r y

[ ( p a r a m e t r y ) ] I S

BEGIN

[ i n s t r u k c j e ]

END;

2

background image

2.5

Typy parametrów w definicji podprogramu

• wejściowe (IN, tylko do odczytu)

• wyjściowe (OUT, tylko do zapisu)

• obustronne (IN OUT, coś jak referencja w C++, domyślne?)

2.6

Cechy pakietu

Pakiet to interfejs dostarczony klientowi przez serwer w postaci zbiorów funkcji/proce-

dur, klas, typów.

Deklaracja pakietu (same nazwy)

CREATE OR REPLACE PACKAGE n a z w a p a k i e t u

I S

[ d e k l a r a c j e

t y p ów ,

f u n k c j i ,

p r o c e d u r ]

END;

Definicja pakietu (wraz z ciałami procedur, funkcji, typów)

CREATE OR REPLACE PACKAGE BODY n a z w a p a k i e t u

I S

[ d e f i n i c j e

t y p ów ,

f u n k c j i ,

p r o c e d u r ]

END;

3

Wykład 3

3.1

Definicja kursora jawnego

Kursor zadeklarowany jawnie, po którym samemu się iteruje

Dodać przykłady definicji i iteracji po jawnym

3.2

Definicja Wyzwalacza

Wyzwalacz to zapożyczenie z paradygmatu aspektowego: „zrób coś, gdy coś”. Rejestruje

się procedury mające się wykonać np. przed lub po wykonaniu jakiejś akcji (dodanie wiersza
do tabeli, usunięcie, modyfikacja)

CREATE [OR REPLACE ] TRIGGER n a z w a w y z w a l a c z a

[ BEFORE | AFTER ]

z d a r z e n i e

[ OF kolumna ]

ON t a b e l a

[ k l a u z u l a r e f e r e n c i n g ]
[WHEN w a r u n e k ]
[ FOR EACH ROW]

BEGIN

−− i n s t r u k c j e

END;

3

background image

3.3

Wyzwalacz DML

Wyzwalacz na operacjach SELECT, DELETE, INSERT , UPDATE, CALL, EXPLAIN PLAN,

LOCK TABLE, MERGE Pozwala np. monitorować (prowadzić logi) operacji na danych

W treści wyzwalaczy dostępne są zmienne :old lub/i :new (w zależności od operacji –

na logikę przy INSERT nie ma :old)

3.4

Wyzwalacz systemowy

Wywoływany przy operacjach DDL: CREATE, ALTER, DROP

Też jest :old i :new?

3.5

Wyzwalacz zastępujący

Wyłącznie dla widoków (perspektyw)

Przykład, po co one

3.6

Perspektywa modyfikowalna

http://edu.pjwstk.edu.pl/wyklady/szb/scb/wyklad3/w3.htm

4

Wykład 4

4.1

Różnice między błędami kompilacji i wykonania

PLS — Błąd kompilacji — występuje w momencie kompilacji, często błąd składniowy,

uniemożliwia kompletnie wykonanie kodu. Błąd wyskakuje w momencie stworzenia funkcji
/ procedury / typu lub po wysłaniu instrukcji z błędem

skonkretyzować

ORA — Błąd wykonania — występuje dopiero w czasie wykonywania kodu, często

zależy od samych danych, jak np. nieprzewidziane dzielenie przez zero, brak danych do
operowania na nich i nie obsłużenie takiego przypadku, błąd serwera.

Może wystąpić PLS w czasie wykonywania kodu w którym jest fragment dynamicznego

kodu.

warto wspominać?

4.2

Kolejność obsługi wyjątku

4.3

Obsługa błędów niepredefiniowanych

Dekalracja własnego wyjątku (w sekcji IS):

DECLARE w y j a t e k EXCEPTION ;

Wywołanie wyjątku

4

background image

RAISE w y j a t e k ;

4.4

Do czego służy procedura RAISE APPLICATION ERROR?

4.5

Zastosowanie dyrektywy PRAGMA EXCEPTION INIT

Służy do kojarzenia błędu Oracle z wyjątkiem użytkownika

Coś więcej

4.6

Czy zgłoszenie wyjątku jest równoznaczne z zakończeniem
działania programu.

Kończy jedynie wykonywany blok podprogramu:

DECLARE

D e c l a r a t i o n

s e c t i o n

BEGIN

−− i n s t r u k c j e

[ 1 ]

DECLARE

D e c l a r a t i o n

s e c t i o n

BEGIN

−− i n s t r u k c j e

[ 2 ]

EXCEPTION

−−o b s ł uga w y j ą t k u z a g n i e ż d ż ongo z [ 2 ]

END;

−− i n t r u k c j e

[ 3 ]

EXCEPTION

−−o b s ł uga w y j ą t k u z [ 1 ] ,

[ 3 ]

i

[ 2 ] ,

j e ś l i

n i e by ł z ł a p a n y

END;

czy tak to może być? Sprawdzić w praktyce

5


Wyszukiwarka

Podobne podstrony:
Bazy danych kolo 2 1 id 81756 Nieznany
Bazy Danych1 secret id 81733 Nieznany (2)
bazy danych kol 2 id 81577 Nieznany (2)
bazy danych wyk2 id 81712 Nieznany (2)
bazy danych wyklad1 id 81713 Nieznany (2)
Bazy Danych bd4 id 633777 Nieznany (2)
Bazy danych 07 id 81462 Nieznany (2)
bazy danych wyk id 81390 Nieznany (2)
bazy danych sql id 81694 Nieznany
BAZY danych wyk id 81710 Nieznany (2)
Bazy Danych kolokwium1 id 81578 Nieznany (2)
bazy danych wyklady id 81711 Nieznany (2)
Bazy danych egzamin(1) id 81477 Nieznany
Bazy Danych bd5 id 633778 Nieznany (2)
Bazy danych kolo 2 1 id 81756 Nieznany
Bazy Danych1 secret id 81733 Nieznany (2)
bazy danych kol 2 id 81577 Nieznany (2)
Bazy danych i mysql od podstaw Nieznany (3)

więcej podobnych podstron