Ich benutze C# und Oracle Dotnet Provider, und versuchen, mehrere Zeilen gleichzeitig mit executeNonQuery() -Methode einfügen.Oracle Dotnet Provider und INSERT ALL-Anweisung
Aber die Abfrage endet nie, und die App hängt an diesem Punkt.
Ich habe bereits die gleiche Abfrage auf SqlDeveloper Tool getestet.
Kann mir jemand sagen, ob OracleDotnetProvide INSERT ALL-Anweisung unterstützt? Und/oder, wenn es einen Weg gibt zu überprüfen, was mit der Ausführung falsch läuft? Hier
ist die Abfrage:
INSERT ALL
INTO ESRI_STG.STD_GIS_CUSTOMER (GIS_ID, GEOM) VALUES (53791115,NULL)
INTO ESRI_STG.STD_GIS_CUSTOMER (GIS_ID, GEOM) VALUES (53791123,NULL)
INTO ESRI_STG.STD_GIS_CUSTOMER (GIS_ID, GEOM) VALUES (53791131,NULL)
SELECT * FROM dual
Unten ist die C# -Code für die Abfrageausführung. Ich habe es mit und ohne die explizite Transaktion versucht:
using System;
using Oracle.ManagedDataAccess.Client;
public static int executeQuery(string sql_query)
{
using (OracleConnection oracleLink = new OracleConnection(oracleConnectionString))
{
using (OracleCommand comm = new OracleCommand(sql_query, oracleLink))
{
try
{
oracleLink.Open();
//OracleTransaction txn = oracleLink.BeginTransaction();
int linhasAfetadas = comm.ExecuteNonQuery();
//comm.Transaction.Commit();
return linhasAfetadas;
}
catch (Exception e1)
{
Console.WriteLine(e1.Message);
return -1;
}
}
}
}
Können Sie bitte Ihren C# -Code zeigen. –