6

次のスクリプトを含むファイルがあります。

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

EXCEPTION
    WHEN OTHERS THEN ROLLBACK;
END;

これをsqlplusで実行すると、次のようになります。

SQL> @file.sql
382

それはまるで彼がブロックを終わらせていないかのようです。pl / sqlとsqlplusを初めて使用するので、何か間違ったことをしているのかわかりません。

何か案は?

4

2 に答える 2

9

最後のENDの後にもう1行追加する必要があります。このような:

/

行の最初の文字としてスラッシュを入力し、次に改行します。

于 2010-02-17T15:12:48.587 に答える
0

わかりました、わかりました。ここに質問を投稿する前に、ドキュメントをよく検索する必要があります。

とにかくこのリンクによると:http: //download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch4.htm#sthref840

SQL*Plus treats PL/SQL subprograms in the same manner as SQL commands, except that a semicolon (;) or a blank line does not terminate and execute a block. Terminate PL/SQL subprograms by entering a period (.) by itself on a new line. You can also terminate and execute a PL/SQL subprogram by entering a slash (/) by itself on a new line.

Instead of END you must finish with /.

于 2010-02-17T15:14:33.903 に答える