Вставить несколько строк в Oracle, используя VB6 - PullRequest
1 голос
/ 12 ноября 2010

Я пытаюсь вставить несколько строк в таблицу, используя 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 не правильнозакончилась.
Если я обновлюсь дальше и заменю ";"с помощью "/" снова получите ту же ошибку
Любая помощь будет принята с благодарностью.
Заранее спасибо ...

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

Возможно, вам нужно выполнить каждый оператор отдельно, например ::100100

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
1 голос
/ 12 ноября 2010

Вы не указали, что такое TestTable (тип полей и т. Д.).Тем не менее, я хотел бы начать с проверки, можете ли вы ввести команду вставки в стандартный клиент Oracle (например, TOAD)?

Если вы не можете тогда проверить наличие каких-либо триггеров или ограничений в таблице.

...