1

BeginTrans...CommitTransを使用してテーブルに複数の行を挿入しようとしています。
以下はコードスニペットです。

For i = 1 To 5
    SQL = SQL & "Insert into TestTable(Field1,Field2,Field3) Values ('Col" & i & "','Col" & i + 1 & "','Col" & i + 2 & "')" & vbCrLf
Next i
conn.BeginTrans
    conn.Execute SQL
conn.CommitTrans

以下は、ループを使用して作成されたSQLです。

Insert into TestTable(Field1,Field2,Field3) Values ('Col1','Col2','Col3')
Insert into TestTable(Field1,Field2,Field3) Values ('Col2','Col3','Col4')
Insert into TestTable(Field1,Field2,Field3) Values ('Col3','Col4','Col5')
Insert into TestTable(Field1,Field2,Field3) Values ('Col4','Col5','Col6')
Insert into TestTable(Field1,Field2,Field3) Values ('Col5','Col6','Col7')

実行するconn.CommitTransとORA-00911が表示されます:無効な文字

SQLを次のように変更した場合

Insert into TestTable(Field1,Field2,Field3) Values ('Col1','Col2','Col3');
Insert into TestTable(Field1,Field2,Field3) Values ('Col2','Col3','Col4');
Insert into TestTable(Field1,Field2,Field3) Values ('Col3','Col4','Col5');
Insert into TestTable(Field1,Field2,Field3) Values ('Col4','Col5','Col6');
Insert into TestTable(Field1,Field2,Field3) Values ('Col5','Col6','Col7');

ORA-00933:SQLコマンドが正しく終了していません。
さらに更新して「;」を置き換えると 「/」を付けると、同じエラーが再び発生します
。どんな助けでも大歓迎です。
事前にThanX...

4

2 に答える 2

1

おそらく、各ステートメントを個別に実行する必要があります。たとえば、次のようになります。

conn.BeginTrans
For i = 1 To 5
    SQL = "Insert into TestTable(Field1,Field2,Field3) Values ('Col" & i & "','Col" & i + 1 & "','Col" & i + 2 & "')"
    conn.Execute SQL
Next i
conn.CommitTrans
于 2010-11-12T10:13:11.857 に答える
1

TestTable が実際に何であるかを指定していません (フィールドのタイプなど)。ただし、挿入コマンドを標準の Oracle クライアント (TOAD など) に入力できるかどうかを確認することから始めますか?

テーブルのトリガーまたは制約を確認できない場合。

于 2010-11-12T09:49:06.170 に答える