Luc*_*nir 3 c# oracle bulkinsert
我有一个dynamic list object
我想BulkInsert
进入的库DB
,我正在使用OracleBulkCopy
另一个库中的旧方法,但是我不能再使用该库了,在新库中我没有此方法。
新库: using Oracle.ManagedDataAccess.Client;
旧库: Oracle.DataAccess.Client
有谁知道一种简单的方法Bulk
而无需创建列表或数组来做到这一点?
该Oracle.ManagedDataAccess.Client
库尚不支持BulkCopy。
您可以在以下链接中比较两个库中的功能:Oracle托管驱动程序比较
另一种选择是使用Array Binding。
例:
using Oracle.ManagedDataAccess.Client;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
string connString = "Data Source=xyz; user id=**; password=**";
using (var con = new OracleConnection(connString))
{
con.Open();
int[] foos = new int[3] { 1, 2, 3 };
string[] bars = new string[3] { "A", "B", "C" };
OracleParameter pFoo = new OracleParameter();
pFoo.OracleDbType = OracleDbType.Int32;
pFoo.Value = foos;
OracleParameter pBar = new OracleParameter();
pBar.OracleDbType = OracleDbType.Varchar2;
pBar.Value = bars;
// create command and set properties
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "insert into test (foo, bar) values (:1, :2)";
cmd.ArrayBindCount = foos.Length;
cmd.Parameters.Add(pFoo);
cmd.Parameters.Add(pBar);
cmd.ExecuteNonQuery();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)