2010-02-17 13 views
6

Mam plik ze skryptem folowing:SQLPLUS nie kończące sql skrypt

BEGIN 
    ... 
    a bunch of inserts 
    ... 
    COMMIT; 

EXCEPTION 
    WHEN OTHERS THEN ROLLBACK; 
END; 

Kiedy wykonać to w sqlplus otrzymuję następujący:

SQL> @file.sql 
382 

To tak, jakby on nie kończy blok . Jestem nowy w użyciu pl/sql i sqlplus, więc nie wiem, czy robię coś nie tak.

Wszelkie pomysły?

Odpowiedz

9

Musisz dodać jeszcze jeden wiersz po ostatnim END; tak:

/ 

Wystarczy ukośnik jako pierwsza postać na linii, a następnie nowa linia.

+0

Wygląda na to, że wysłałem odpowiedź w tym samym czasie. Dziękuję za odpowiedź. – Megacan

0

Ok, wymyśliłem to. Zanim opublikuję tutaj pytanie, powinienem przejrzeć dokumentację lepiej.

Zresztą zgodnie z tym linkiem: http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch4.htm#sthref840

SQL * Plus traktuje podprogramów PL/SQL w taki sam sposób, jak poleceń SQL, oprócz tego, że średnik (;) lub pusta linia nie kończy i wykonać blok. Zakończ podprogramy PL/SQL, wpisując kropkę (.) Samodzielnie w nowym wierszu. Możesz również zakończyć i uruchomić podprogram PL/SQL, wpisując sam slash (/) w nowym wierszu.

Zamiast END należy zakończyć za pomocą /.