1

次の C# コードを使用して SQL を実行しようとしています。

IDbCommand objOracleCommand = CreateCommand(commandPart, connection, transaction);
objOracleCommand.ExecuteNonQuery();

「ORA-00933: SQL コマンドが正しく終了していません」というエラーが返されます。

commandPart は次のような文字列です。

CREATE SEQUENCE seq_1
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
NOCACHE
NOCYCLE
NOORDER

CREATE SEQUENCE seq_2 START WITH 1 INCREMENT BY 1

commandPart は、実際にはテキスト ファイルから読み込まれています。元の SQL には次のようなセミコロンがあります。

CREATE SEQUENCE seq_1
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
NOCACHE
NOCYCLE
NOORDER;

CREATE SEQUENCE seq_2 START WITH 1 INCREMENT BY 1;

この元のスニペット (セミコロン付き) は、SQL Developer で問題なく動作します。C# 経由で元のスニペットを実行すると、「ora-00911: 無効な文字」が表示されます。何か案は?

ありがとう、エリック

4

1 に答える 1

2

コマンド部分は 2 つのコマンドで構成されます。Oracle は 1 つのコマンドしか想定していないため、混乱しています。

ExecuteNonQuery2 つのコマンドを別々に実行 ( ) する必要があります。

于 2012-10-30T21:02:05.993 に答える