C#.NET執行Oracle DBLink關於“ORA-02041: 客戶數據庫未開始一個事務處理”

今天在使用另外一個數據庫通過DBLINK 鏈路進來的一張表時,拋出“ORA-02041: 客戶數據庫未開始一個事務處理”異常,但是簡單的BeginTransaction好像並不能解決問題,苦翻了一通資料,又上網轉了半天,最終在一個博客裏發現了一個隱含的解決辦法,下面明示給大家。

 

數據服務器A要訪問另一臺數據服務器B,都是oracle數據庫。
登錄數據服務器A後,建了database link
create public database link dbsb using 'dbsb';
然後在數據服務器上用sqlplus執行:select * from t_1@dbsb;時是正確的。

 

關鍵原因出在了C#.NET連接Oracle的字符上。

這是我原先寫的,能連上,可執行其他的數據庫命令,包括建立數據庫鏈接,但就是執行連接查詢時提示"ORA-02041: 客戶數據庫未開始一個事務處理"。

String con = "Data Source=" + Sid + ";User=" + User + ";Password=" + Psd + ";"

這是我整合後寫的,沒有問題,可以執行了,大家一起HAPPY!

String con = "persist security info = false;user id =" + User + ";password=" + Psd + ";data source=" + Sid + ";Unicode=True;Omit Oracle Connection Name=True";

 

 

特別感謝:http://www.cnblogs.com/EasyLive2006/archive/2008/11/14/1333758.html

http://www.cnblogs.com/wjhx/archive/2007/07/04/805087.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章