如何使用Oracle Managed Data Acess进行批量插入C#

Luc*_*nir 3 c# oracle bulkinsert

我有一个dynamic list object我想BulkInsert进入的库DB,我正在使用OracleBulkCopy另一个库中的旧方法,但是我不能再使用该库了,在新库中我没有此方法。

新库: using Oracle.ManagedDataAccess.Client;

旧库: Oracle.DataAccess.Client

有谁知道一种简单的方法Bulk而无需创建列表或数组来做到这一点?

Mt.*_*ers 7

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)