2017-12-22 12 views
0

dynamic list object私はDBBulkInsertとしたいが、別のlibの古いOracleBulkCopyメソッドを使用していたが、もう使用できない新しいlib私はこのメソッドを持っていません。Oracle Managed Data Acessを使用して一括挿入を行う方法c#

新libに:using Oracle.ManagedDataAccess.Client;

旧LIB:Oracle.DataAccess.Client

誰もがそれを行うにはリストや配列を作成せずにBulkを行う簡単な方法を知っていますか?

+0

新しいlibには何ですか? –

+0

質問を編集してライブラリを追加してください –

答えて

2

Oracle.ManagedDataAccess.Client libはまだBulkCopyをサポートしていません。

あなたはfolowingリンクの両方でLIBSから機能を比較することができます:Oracle Managed Driver Comparison

Related Question

別のオプションは、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(); 
      } 
     } 
    } 
} 
+0

私はこのライブラリを使用している間に一括挿入を求める理由は知っているので、方法が必要です –

+0

@LucioZenir配列バインドを試しましたか? [リンク](http://www.oracle.com/technetwork/issue-archive/2009/09-sep/o59odpnet-085168.html) –

+0

はい、それは動作しません。 –

関連する問題