C#(.Net) 连接 ORACLE数据库

使用oracle_instantclient连接ORACLE数据库

oracle_instantclient在PL/SQL访问数据库时是非常方便的,只需要在PL/SQL的Refreence中配置Oracle Home和OCI Libary指定oracle instantclient目录和oci.dll文件即可访问数据库。开发的时候使用该方法同样是可以做到的。需要配置环境变量,在PATH路径中加入oracle instantclient目录(%ORACLE_HOME%),加入TNS_ADMIN为%ORACME%/Network/Admin,在该目录下为ORACLE的TNS配置。这样就可以通过Visual Stdio访问数据库了。需要记住的是,配置了环境变量需要重起开发环境。

使用ORACLE Client连接ORACLE数据库

在安装了ORACLE客户端软件之后,一般在注册表中已经注册了ORACLE_HOME环境变量,如

HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraClient11g_home1

这是我安装了ODP.NET 11.2.0.1.2之后在注册表中存在了,该是安装也会在PATH环境变量中加入该目录以及BIN目录。这样就需要在该客户端中Network/Admin添加tnsnames.ora文件,并添加TNS。

1、System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。

该问题是因为OracleClient库找不到一个可用的客户软件,所以出现这样的错误,网上有因为程序路径有特殊字符也可能导致该是问题,或者权限问题,只要OracleClient(Data Provider)找不到数据库访问库,就会出现这个错误。

在oracle instantclient方式中,如果没有配置PATH环境变量,将会出现该错误。一般情况下,安装了客户端是不会出现该是问题的。

2、ORA-12154: TNS:could not resolve the connect identifier specified

该错误是库没有找到连接库中的TNS名称,该问题在安装客户端之后,没有添加tnsnames.ora(安装时没有该文件,需要托运设置),添加正确的配置之后应该是可以访问的,当然,对于instantclient方式,需要添加TNS_ADMIN环境变量(记得重启开发环境)。

另外,我是在VS2010开发环境下测试的,因为VS2010是使用.NET 4,并没有oracleclient库,需要将项目的.NET环境修改低一些,就可以添加该库,并做测试了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/yin138/p/4902265.html