C#使用OracleBulkCopy




首先使用PL/SQL  通過語句:select * from v$version; 查詢出使用的oracle版本,弄到對應版本的Oracle.DataAccess.DLL 
我本地使用版本為:11.2.0.4.0  (64位)

Oracle.DataAccess.DLL下載地址:https://www.oracle.com/database/technologies/odac-downloads.html
下載之后DLL所在目錄:ODAC112040Xcopy_64bit\odp.net20\odp.net\bin\2.x\Oracle.DataAccess.dll

代碼如下(轉):

/// <summary>
/// 批量插入數據
/// </summary>
/// <param name="table">數據表</param>
/// <param name="targetTableName">數據庫目標表名</param>
/// <returns></returns>
public bool ExcuteBulkData(DataTable table, string targetTableName)
{
    bool result = false;
    using (OracleConnection conn = new OracleConnection(connectionString))
    {
        using (OracleBulkCopy bulkCopy = new OracleBulkCopy(connectionString,OracleBulkCopyOptions.Default))
        {
            if (table != null && table.Rows.Count > 0)
            {
                
                bulkCopy.DestinationTableName = targetTableName;
                
                for (int i = 0; i<table.Columns.Count; i++)
                {
                    string col = table.Columns[i].ColumnName;
                    bulkCopy.ColumnMappings.Add(col, col); 
                }
                conn.Open();
                bulkCopy.WriteToServer(table);
                result = true;
            }
        }
    }
    return result;
}

 

  第一次項目啟動之后報錯信息:其他信息: 未能加載文件或程序集“Oracle.DataAccess, Version=2.112.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一個依賴項。試圖加載格式不正確的程序。

  找到解決辦法:visual studio 啟動時修改解決方案平台:,這里把Any CPU改為x64,沒有X64需要自己添加。

 

 

  之后又碰到 如下錯誤:其他信息: ORA-1843: not a valid month,后來發現是傳入方法的DataTable里面對應字段沒有設置時間格式。(DataTable里面字段順序和格式要和插入的表一致

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM