近期做了一个项目,通过VC odbc訪问oracle数据库,在我电脑上能够正常执行。在其它电脑上执行不了,原因是没有oracle odbc驱动。无法配置oracle数据源。网上的博文大都是安装oracleclient来解决的。
我想就是一个小程序,不是必需安装client吧,參照网上博文并訪问了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 =
(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 1521port。
配置客户端电脑,控制面板->数据源->用户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是。
。。,我也说不清楚,应该是数据库名吧。
在client电脑上添加环境变量NLS_LANG,其值是在上面得到的NLS_LANG值。我server的NLS_LANG是SIMPLIFIED CHINESE_CHINA.ZHS16GBK