首页 > 代码库 > oracle odbc 驱动安装(不安装oracle客户端)

oracle odbc 驱动安装(不安装oracle客户端)

最近做了一个项目,通过VC odbc访问oracle数据库,在我电脑上可以正常运行,在其他电脑上运行不了,原因是没有oracle odbc驱动,无法配置oracle数据源。网上的博文大都是安装oracle客户端来解决的。我想就是一个小程序,没必要安装客户端吧,参照网上博文并访问了oracle网址,于是有了这篇文章。

1、下载odbc驱动

需要下载两个东西

instantclient-basiclite-nt-12.1.0.1.0.zip
instantclient-odbc-nt-12.1.0.1.0.zip

网址:http://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html

由于时间推移,版本号会更新,网址也会变化。所以大家可以百度 oracle instantclient basiclite 关键词,然后再搜索结果中找见oracle官方网站,进行下载。下载时需要同意协议并是oracle注册用户,用户注册是免费的。

2、解压缩这两个文件到同一个文件夹
 a、分别解压缩这两个文件
 b、解压缩后两个文件夹里面都有instantclient_12_1目录,将odbc的instantclient_12_1目录下的内容拷贝到basicclient下的instantclient_12_1里面
 c、为了使目录整齐简介,将basicclient下的instantclient_12_1目录拷贝到D:\Program Files\instantclient_12_1


3、将oracle数据库所在电脑上的NETWORK目录拷贝到instantclient_12_1目录下,我oracle服务器所在电脑的network在D:\oraclexe\app\oracle\product\11.2.0\server这个位置。

4、修改NETWORK\ADMIN\tnsnames.ora文件,将主机名换成IP地址。下面例子当中10.17.176.138以前是oracle数据库所在电脑上的主机名。主机名可能无法正确连接,所以换成IP地址。

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.17.176.138)(PORT = 1521))
    (CONNECT_DATA =http://www.mamicode.com/
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

5、添加环境变量TNS_ADMIN,变量值指向ADMIN目录,我的配置是D:\Program Files\instantclient_12_1\NETWORK\ADMIN

6、双击instantclient_12_1目录下的odbc_install.exe完成安装。注:安装时出现DOC框,并一闪而过,你可能无法判断是不是正确安装。其实你可以cmd进入instantclient_12_1目录,并.\odbc_install.exe手动安装。

8、配置数据源并测试
为了不影响测试,首先将oracle数据库所在电脑的防火墙关闭,或允许例外TCP 1521端口。配置客户端电脑,控制面板->数据源->用户DSN->添加中选择Oracle in instantclient_12_1,TNS Service Name中选择数据库名,我的名字是XE,点Test Connection,如果提示成功就OK了。

9、防止乱码
在安装数据库的电脑上(我的oracle是安装在window上的),查看HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_XXX下的NLS_LANG值,其中XXX是。。。,我也说不清楚,应该是数据库名吧。
在客户端电脑上增加环境变量NLS_LANG,其值是在上面得到的NLS_LANG值。我服务器的NLS_LANG是SIMPLIFIED CHINESE_CHINA.ZHS16GBK