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

在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查询。
摘要由CSDN通过智能技术生成

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值