ODP.NET 裏的一些特性

當用ODP.NET內置的connection pool時, 如果oracle裏用profile設了maximun session idle time, 當session 過了這個time, 而OracleConnection.open試着從pool裏去取connection時, 會出現exceed maximum idle time 錯誤, 而再次調用, 就會說not logon錯誤, 解決方法是加validate Connection = true到connection string裏, 這樣就不會去取bad session了, 這也可用於如果有人kill了你的session.

ODP.NET 裏支持在一次調用裏做批量insert或update, 他提供兩個方法, 一是用Array binding, 我們可以把需要多次調用的一個OralcleCommand的一批不同參數放到多個數組裏,一起傳給oracle, oracle會根據定義的ArrayBindCount 做一個循環來執行sql或stored proc. 二是用PL/SQL associative arrays , 通過他我們可以用數組做爲stored proc的參數.

在ODP.NET 裏我們還可以用一個OralcleCommand返回多個DataReader, oracleCommand.executeDataReader得到第一個DataReader, oracleCommand.NextResult用來得到下面的DataReader.

ODP.NET裏還提供了OracleCommand.Cancel, 他可以用來中斷一個長時間的查訊, 他的原理是調用了OCIBreak這個低層API
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章