Oracle ODBC 配置(不需安装oracle客户端)

本文介绍了如何在不安装Oracle客户端的情况下配置Oracle ODBC驱动。通过下载并解压Oracle提供的instantclient,然后运行odbc_install.exe安装驱动。在ODBC数据源管理器中配置数据源,特别是TNS Service Name需正确设置为IP:Port/Instance或Service Name。测试连接成功后,可以通过创建UDL文件获取连接字符串。当在.NET平台下遇到中文显示问题时,需设置服务器端和客户端的NLS_LANG环境变量保持一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:http://blog.sina.com.cn/s/blog_72d3486f0102w4n1.html

1,从Oracle主站下载两个文件:
a: instantclient-basic-windows.x64-11.2.0.4.0.zip
b: instantclient-odbc-windows.x64-11.2.0.4.0.zip
下载地址: http://www.oracle.com/technetwork/topics/winx64soft-089540.html
a文件是基础的,b文件是ODBC的,也可以把b文件切换成其它的,如jdbc,那最终合成的是JDBC的驱动了。本文是是生成ODBC的驱动。
2,将两个文件解压到同一个文件夹中,如:instantclient_11_2
就是直接“解压到当前文件夹”,就会合成单个文件夹。
将文件夹放到合适的位置,我是放到C盘的根目录
3,以管理员身份进入命令行,如:cmd ,或者是PowerShell
运行:odbc_install.exe,安装odbc 驱动,会提示安装成功。
打开 windows管理工具-》odbc数据源 (64位) ;点击“驱动”,这时候应该能看到“oracle …..”这条驱动了。
4,测试数据源
打开 windows管理工具-》odbc数据源 (64位) ;
用户dsn,或者是系统dsn都可以,点击“添加”,添加数据源配置,注意:
a,数据源名称是自我指定的,可以随便定义,方便后使用
b,description 可以为空,相当与注释


c,TNS serviceNAME 这个是重点,具体格式为:192.168.10.5:1521/ORCL

IP地址:端口号/实例名(应该也可以是服务名,是个疑问?)

后看别的文章,这个是服务名,因为很多系统都是服务名和实例名一样。这个服务名在:TNSNAMES.ORA文件中。


就可以点击 test connection 测试连接了。没有错误就会弹出连接成功的说明了。

5,建立连接字符串
可以建立一个文本文件,将后缀名该为udl,再双击打开,在 “连接”————》“选择或输入服务器名称”中就可以看到刚刚建立的数据源了,完成用户名,密码的配置,保存。再用文本工具打开,就可以看到连接字符串了。如:
Provider=MSDASQL.1;Persist Security Info=False;User ID=avls;Password=1;Data Source=orcl;
还有发一个Oracle ODBC连接串汇总:http://www.connectionstrings.com/oracle/ ,这是网上别人总结的,很好。谢谢分享!

后记:当我在c# .net平台下写了个aspx网页连接oracle的odbc数据源时,查询出的中文都是问号。后来查了一下,需要在服务器端添加环境变量,将客户端的编码与服务端的编码保持一致如:

SIMPLIFIED CHINESE_CHINA.ZHS16GBK   //这个是中文的
AMERICAN _ AMERICA. ZHS16GBK //这个是也是    

影响oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下:

  NLS_LANG = language_territory.charset

  它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:

  Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK

  从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。
  建议完全一致。

服务端编码方式获取,用sql语句:

select userenv('language')  from dual; //dual 为任一表名称

客户端添加“系统环境变量”
NLS_LANG
变量值为上面获取的Oracle服务端查询的结果。
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
AMERICAN _ AMERICA. ZHS16GBK //我用的就是这个,改完了就可以了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值