2011-06-16 101 views
0

我正試圖在Oracle DB中插入值。我有一個現在插入一行的存儲過程。但閱讀更多關於批量插入這裏(http://stackoverflow.com/questions/343299/bulk-insert-to-oracle-using-net,http://dotnetslackers.com/articles/ado_net/BulkOperationsUsingOracleDataProviderForNETODPNET.aspx),它似乎是最好的傳遞參數值作爲一個數組。我有一個像這樣的通用列表,即employeeList。使用C#的Oracle批量插入?

class employee() 
{ 
    public int ID {get; set;} 
    public string Name {get; set;} 
} 

我怎麼能說我的存儲過程(我知道我需要做出改變我的參數在裏面,把參數數組),並通過各參數值作爲數組做批量插入(試圖遵循示例鏈接)?

+0

是否有一個原因需要使用存儲過程,而不是ODP.NET的數組綁定功能?您鏈接的文章首先描述了它,並且比將數組傳遞給存儲過程簡單得多。 – Odrade 2011-06-16 20:33:02

+0

存儲的過程。有幾個邏輯,取決於它插入/更新表,這就是爲什麼。此外,它已被其他應用程序使用。 – sanjeev40084 2011-06-17 13:08:39

回答

0

即使您傳遞數組,您仍然一次只能執行一個DML。
如果您想要批量加載速度,請寫出一個文件並將SQL Loader批量插入到表中。
這是獲得數千行超快性能的唯一方法。

+0

或者像Odrade推薦的那樣,也可以使用數組綁定來獲得可比較的性能。如果他的存儲過程在插入之前需要邏輯,這兩種解決方案都不會起作用。 – 2013-03-25 18:46:13