System.Data.OracleClient vs. Oracle.DataAccess.Client
.Net üzerinden Oracle işlemleri yapmak istediğinizi varsayalım. Karşınıza Ado.Net Oracle Client olarak 2 opsiyon çıkacaktır: Bir tanesi Microsoft’un geliştirmiş olduğu ve .Net Framework ile birlikte gelen System.Data.OracleClient ve diğeri de http://www.oracle.com/technology/software/tech/windows/odpnet/index.html adresinden indirebileceğiniz Oracle.DataAccess.Client.
Bu iki client arasındaki teknik detaylara daha sonra gireceğim fakat bilinmesi gereken en önemli konu System.Data.OracleClient’ı kullanmanız durumunda Oracle veritabanı üzerinde açmış olduğunuz ref cursorların kapatılması işleminin gerçekleşmeyeceği* ve Oracle’ın bir süre sonra “Maximum cursor sayısı aşıldı” gibi aktif oturumun geriye kalan tüm işlemlerini durduracak bir hata alacağınızdır. Microsoft bu sorununu düzeltir mi bilmiyorum fakat Oracle.DataAccess.Client’ı kullanırsanız bu sorunla kesinlikle karşılaşmıyorsunuz.
* ref cursor’ın kapanmasını beklediğimiz durum Command’ın dispose edilmesi durumundadır.