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: Invalid character

如果我将 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 命令未正确结束。
如果我进一步更新并替换“;” 使用“/”再次得到相同的错误
非常感谢任何帮助。
提前谢谢...

4

2 回答 2

1

您尚未指定 TestTable 实际上是什么(字段类型等)。但是,我会先看看您是否可以在标准 Oracle 客户端(例如 TOAD)中键入插入命令?

如果你不能然后检查表上的任何触发器或约束。

于 2010-11-12T09:49:06.170 回答
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 回答