Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kursory Oracle 9i - masowe kasowanie obiektów BD
lucas06
post
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!!!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:12