2017-12-22 6 views
0

ich eine dynamic list object haben, die ich in meinem DB-BulkInsert wollen, ich war die alte OracleBulkCopy Methode aus einem anderen lib verwenden, aber ich kann das lib nicht mehr und nutzen die neue lib ich habe diese methode nicht.Wie eine Bulk Insert mit Oracle machen Managed Data Acess C#

New lib: using Oracle.ManagedDataAccess.Client;

Old lib: Oracle.DataAccess.Client

Kennt jemand eine einfache Möglichkeit, die Bulk ohne Erstellen von Listen oder Arrays zu tun, es zu tun?

+0

Was ist die neue lib? –

+0

editieren Sie einfach die Frage und fügen Sie die Bibliotheken hinzu –

Antwort

2

Die Bibliothek Oracle.ManagedDataAccess.Client unterstützt BulkCopy noch nicht.

Sie können Funktionalität von beiden libs im Folowing Link vergleichen: Oracle Managed Driver Comparison

Related Question

Eine weitere Option Array Binding zu verwenden wäre.

Beispiel:

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

Ich weiß, deshalb frage ich nach einer Masseneinfügung, während ich diese lib benutze, muss ein Weg sein –

+0

@LucioZenir Haben Sie Array Binding versucht? [Link] (http://www.oracle.com/technetwork/issue-archive/2009/09-sep/o59odpnet-085168.html) –

+0

Ja, aber ich kann es nicht funktionieren –