C#.NET执行Oracle DBLink关于“ORA-02041: 客户数据库未开始一个事务处理”

来源:互联网 发布:sql server2005中文版 编辑:程序博客网 时间:2024/06/06 06:53

今天在使用另外一个数据库通过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