ZSBD-2st-1.2-lab10.tresc-1.4-Slajd6

Z Studia Informatyczne
Wersja z dnia 12:09, 10 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zadanie (1) – cd.

Zadanie (1) – cd.


Zapis kolejnych części odczytanego pliku do BLOBa jest wykonywany w pętli (4). W pierwszym kroku łańcuch reprezentujący paczkę jest konwertowany do surowych danych za pomocą procedury CAST_TO_RAW pakietu UTL_RAW, a następnie zapisywany do BLOBa. Kroki te są powtarzane tak długo, aż wszystkie paczki zostaną zapisane. Tak zbudowany BLOB jest następnie zamykany (5). Celem zadania jest uzupełnienie kroku (6), w którym powinien zostać utworzony obiekt typu SI_STILLIMAGE reprezentujący plik graficzny zapamiętany w zmiennej PICT typu BLOB. Obiekt ten powinien zostać zapisany do zmiennej TEMPFLAG. Następnie, za pomocą metody SI_INITFEATURES typu SI_STILLIMAGE, powinny zostać zainicjowane pomocnicze atrybuty obiektu reprezentującego obraz w celu przyspieszenia realizacji zapytań (patrz poniżej). Ostatecznie obiekt zapisany w zmiennej TEMPFLAG powinien zostać zapisany do tabeli FLAGS. Typ SI_STILLIMAGE, oraz jego konstruktor i metody, zostały opisane na wykładzie poświęconym standardowi SQL/MM. Ostatni krok programu polega na zwolnieniu zasobów zajmowanych przez tymczasowy BLOB za pomocą procedury FREETEMPORARY pakietu DBMS_LOB (7).

Typ obiektowy SI_STILLIMAGE (w jego implementacji w Oracle 10g) posiada bezparametrową metodę SI_INITFEATURES obliczającą własności składowanego obrazu, które mogą być wykorzystane do przyspieszenia realizacji zapytań. Własności obrazu są zapisywane w atrybutach obiektu reprezentującego konkretny obraz i są razem z nim składowane w tabeli. Przykładowa aktywacja metody SI_INITFEATURES wygląda następująco:


declare

obraz si_stillimage;

.......

begin

.......

obraz.si_initfeatures()

.......

{instrukcje zapisujace obraz do tabeli}

.......

end;

/


Kod, który przedstawiono na tym i poprzednim slajdzie załączono do kursu w pliku load_flags.sql.


Uwaga ! W przypadku, gdy z jakichś powodów nie można wykonać zadania (1), można je ominąć importując do Oracle 10g gotową tabelę z flagami. Aby to wykonać, należy: 1. Pobrać plik flags.dmp załączony do kursu. 2. Przejść w linii poleceń do katalogu z plikiem flags.dmp i wykonać polecenie:

imp user/pass@nazwa_bd file=flags.dmp tables(flags)

Do wykonania tych kroków konieczne jest posiadanie zainstalowanego i skonfigurowanego oprogramowania klienckiego Oracle 10g (a w szczególności narzędzia imp).


<< Poprzedni slajd | Spis treści | Następny slajd >>