![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cześć!
Mam problem z kursorami pod Oracle 9i. Otóż chce zrobic taką rzecz, która bedzie mi kasować jakieś obiekty stworzone w bazie np. table, które uzyskam po wypisaniu polecenia: "SELECT tname FROM tab;" Tak wygląda moja anonimowa deklaracja z wykorzystaniem kursora declare nazwa_tab varchar(30); cursor del is select tname from tab; begin open del; loop fetch del into nazwa_tab; exit when del%notfound; drop table nazwa_tab; dbms_output.put_line('Usunieto tabele '|| nazwa_tab); end loop; close del; end; / po wykonaniu której otrzymuję nastepujacy komunikat: BŁĄD w linii 12: ORA-06550: linia 12, kolumna 3: PLS-00103: Napotkano symbol "DROP" gdy oczekiwano jednego z następujących: begin case declare end exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge <a single-quoted SQL string> pipe No i własnie tu pojawia sie problem uzyciem polecenia DROP, nie wiem dlaczego Oracle nie przyjmuje go. Próbowałem umieścic to polecenie w dodatkowym bloku BEGIN ... END; ale tez nie pomogło. Po wyrzuceniu tej instrukcji wszytko działa poprawnie! Moje pytanie brzmi, co robię źle?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) oraz czy dobrze odwołuję się do zmiennej nazwa_tab w instrukcji "DROP TABLE nazwa_tab;" znajdującej się w deklaracji?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Za wszytkie podpowiedzi, odpowiedzi i słowa krytyki dziekuję z góry!!! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:12 |