杂记1:不安装Oracle客户端远程连接Oracle的方法

方案是使用Oracle Instant Client:

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

步骤一:

到Oracle官方网站下载对应的Instant Client版本,下载basic版本即可,比如我下载的是:

instantclient-basic-win32-10.2.0.4.zip

建议再下载sqlplus,以便配置结束后进行测试:

instantclient-sqlplus-win32-10.2.0.4.zip

步骤二:

新建一个文件夹,用于解压缩下载的文件,比如:

C:Oracle

然后把步骤一下载的压缩包解压至该目录下。

步骤三:

在环境变量中增加:

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

TNS_ADMIN=C:Oracleinstantclient_10_2

ORACLE_HOME=C:Oracleinstantclient_10_2

修改Path环境变量,在最前面增加:

C:Oracleinstantclient_10_2;

注意:红色部分路径要换成你自己的实际路径

步骤四:

在C:Oracleinstantclient_10_2路径下创建tnsnames.ora文件。

添加如下Oracle服务信息:

cywms =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.80)(PORT = 1521))
    )
  (CONNECT_DATA =
    (SERVICE_NAME = cywms)
  )
)

注意:红色部分要换成你的Oracle连接信息

步骤五:

至此,InstantClient已经安装完成。我们打开cmd命令行测试一下:

sqlplus /nolog

应该可以看到sqlplus的版本信息,使用以下命令连接到Oracle实例:

connect sa/system@cywms

如果出现“已连接”就说明我们连接成功啦:-)

注意:请使用你自己的用户名、密码和数据库服务名

步骤六:

在C#代码中连接Oracle数据库:

using System.Data.OracleClient;

OracleConnection conn = new OracleConnection("Data Source=cywms;user=sa;password=system;"); try { conn.Open(); string sqlString = "select * from table1"; OracleDataAdapter myAdapter = new OracleDataAdapter(sqlString, conn); DataTable myDataTable = new DataTable(); myAdapter.Fill(myDataTable); return myDataTable; } catch (Exception e) { return null; } finally { conn.Close(); }

其他:

问题1:我的操作系统是Win7 64位,使用VS2010开发,连接数据库时报BadImageFormatException

如果在64位的操作系统中报以上错误,请重新下载32位版本的InstantClient,不要问我为什么:-P

网上有资料说还要修改项目的目标平台(项目右键-属性->生成->目标平台)为x86,经测试使用32位Client后,“Any CPU”也是可以的:)

问题2:PL SQL登录时候没有读取tnsnames.ora下配置的服务信息

打开PL SQL取消登录,打开工具(Tools)属性(Performances)窗口

如上图,删除Oracle Home和OCI library的配置,我们已经配置了环境变量,让PL SQL自动读取就OK了:-)

参考:

http://www.cnblogs.com/chinalantian/archive/2011/09/09/2172145.html

原文地址:https://www.cnblogs.com/wuchaochao/p/4305719.html