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

在C#.NET中通过Oracle DBLink访问远程数据库时遇到'ORA-02041: 客户数据库未开始一个事务处理'错误。问题关键在于数据库连接字符串的设置。修正后的连接字符串为:'persist security info = false;user id =[USER];password=[PSD];data source=[SID];Unicode=True;Omit Oracle Connection Name=True',这使得C#.NET能够正确执行DBLink查询。

2271

被折叠的 条评论
为什么被折叠?



