c# ora-00177


当使用.NET 4.0自带的System.Data.OracleClient去访问ORACLE数据库时,

使用如下连接字符串会报ora-00177问题。

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.39)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = lnorcl)));User Id=sisfutai;Password=sisfutai;


建议使用此写法解决该问题。

Data Source=192.168.2.39:1521/lnorcl;Persist Security Info=True;User ID=sisfutai;Password=sisfutai;Unicode=True


详细可以参考:



1.通过System.Data.OracleClient
引用命名空间
C#引用System.Data.OracleClient。


2.通过Oracle.DataAccess.dll
(Oracle.DataAccess.dll可以从安装有Oracle的目录下\app\Administrator\product\11.2.0\dbhome_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll找到)
引用Oracle.DataAccess.OracleClient命名空间


3.关于两个命名空间的说明
System.Data.OracleClient和Oracle.DataAccess.OracleClient只能用一个,这两个命名空间下的数据库操作类基本相同,如果两个都引用,就会造成引用冲突。


推荐使用Oracle官方提供的Oracle.DataAccess.dll,因为微软已经不建议使用System.Data.OracleClient了。


4.连接相关准备 oci.dll、orannzsbb10.dll、oraocci10.dll、oraociei10.dll 等dll


4.1。下载一个版本的 Instant Client for Microsoft Windows (32-bit)
    http://www.oracle.com/technetwork/topics/winsoft-085727.html


4.2.解压后,找到如下的几个dll(可能还有其它的dll,不同版本的OIC名称有差异,可以自己试着找一下这些dll都有什么作用),将dll放到C#程序执行程序的相同目录下,如bin/Debug目录;
oci.dll、orannzsbb10.dll、oraocci10.dll、oraociei10.dll 


    如果不配置OIC环境变量,则将oci.dll、orannzsbb10.dll、oraocci10.dll、oraociei10.dll几个dll拷贝到程序的bin文件夹中。
    如果已经配置OIC环境变量,则引用System.Data.OracleClient命名空间之后就可以连接Oracle了。


4.3.远程连接字符串,请改为自己的:
(1)Oracle配置文件tnsnames.ora中提供的连接字符串
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))(CONNECT_DATA=(SID=orcl)));User Id=scott;Password=tiger;
(2).NET提供的链接字符串
connectionString="Data Source=192.168.1.2:1521/orcl;Persist Security Info=True;User ID=scott;Password=tiger;Unicode=True";
连接字符串任选一个。


5.下面就可以使用OracleConnection连接远程Oracle了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

random_2011

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值