C#连接字符集为Ascii的Oracle

我平时装Oracle时一般都是装GBK字符集,而今天遇到一家装了Ascii的Oracle,导致我程序执行查询语句时报错:0RA-01843: ?????

而我直接在plsql里面跑查询语句时是没问题的(客户端Oracle的字符集和服务端的保持一致)。

方法一:我的程序是用”Oracle.ManagedDataAccess“连接的数据库,这个类库的好处是不需要安装Oracle客户端,但是他不会解析其它类型的字符集。

方法二:后来我换成”System.Data.OracleClient“,这个是要装客户端,是最终通过客户端查询的,想着既然plsql直接跑语句没有问题,那肯定用这个也没有问题了(前提是客户端Oracle的字符集需要和服务端的保持一致),换成这个之后确实没有报错了,但是查询出来的DaTaTable是空的。

方法三:最后我换成了”System.Data.OleDb.OdbcConnection“,终于不报错,数据能查出来了。

连接字符串是:Provider=MSDAORA.1;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.5)(PORT = 1521)))(CONNECT_DATA = (Server_name = Health))) ;User Id=jjjjj;Password=kkkkk

感觉用最后一种方法遇到什么样的字符集都能解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值