2010-11-12 26 views
1

J'essaie d'insérer plusieurs lignes dans une table en utilisant BeginTrans ... CommitTrans.
ci-dessous est extrait de code:Insérer plusieurs lignes dans Oracle en utilisant VB6

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 

et qui suit est le SQL préparé en utilisant la boucle

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') 

Quand je lance conn.CommitTrans je reçois ORA-00911: caractère non valide

Si je modifie la SQL comme

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'); 

I get ORA-00933: La commande SQL n'est pas correctement terminée.
Si je mets à jour davantage et remplacez ";" avec "/" à nouveau obtenir la même erreur
Toute aide est grandement appréciée.
ThanX à l'avance ...

Répondre

1

Vous n'avez pas spécifié ce qu'est réellement TestTable (type de champs, etc.). Cependant, je commencerais par voir si vous pouvez taper la commande d'insertion dans un client Oracle standard (par exemple TOAD)?

Si vous ne pouvez pas alors vérifier les déclencheurs ou les contraintes sur la table.

1

Vous devez probablement exécuter chaque instruction séparément, par exemple .:

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