浅析Windows通过ODBC访问linux的Oracle数据库

数据库 Oracle
本文以Oracle9i和WinXP为例讲述如何设置ODBC来访问在linux服务器上的Oracle9i数据库。

Oracle数据库安装在IP地址为192.168.0.20 的Linux服务器上,然后建立一个实例名为"MyTestInstance",并添加用户mytestuser 和密码password1,以备下文作为范例使用。服务器上可以配置多个实例,每个实例就是一个逻辑上独立的数据库。

客户端是指需要访问服务端的Oracle数据库的计算机,它可以与服务器是同一台机器,它也可以是网络能够访问到该服务器的任何其它计算机。

下面讨论如何在Windows客户端机上配置Oracle 9i ODBC 来访问远程Oracle 9i数据库。

通过ODBC来访问Oracle的原理如下:

客户程序----> ODBC ----> Oracle OCI ------> Oracle 服务器

首先,在客户端上装一个Oracle OCI(Oracle Call Interface),它是真正直接与远程Oracle服务器打交道的,实现数据传输的组件。为了使用ODBC的统一方式来访问Oracle数据库,还必须装一个Oracle ODBC driver,它接收客户程序的数据库访问请求,并把ODBC类型的请求转换为对Oracle OCI的请求。OCI实现操纵Oracle数据库,并将查询结果或其它结果返回给ODBC driver,ODBCdriver ***将结果返回给客户程序。换句话说,客户通过ODBC来访问数据库,而ODBC则是通过调用OCI的API来实现其功能的。

以刚才所述的服务器设置为基础,下面给出客户端Oracle ODBC的配置步骤。

步骤1:安装Oracle 客户端运行时库,其中包括Oracle OCI

步骤2:设置OCI访问信息。

OCI访问Oracle服务器需要知道:

1.服务器IP地址或主机名。

2.服务器的监听端口。

3.欲访问的数据库实例名(服务标识/服务名)。

把这三个信息组成的信息集合起个名字就叫数据源名(服务命名)。

这些信息可以通过Oracle Net Manager来设置。在它的设置界面中用的名词分别被列在对应的括号中。

本例设置如下:

服务命名:ABCD(随便字符串)

主机名:192.168.0.20

端口号:1521&;(必须与服务器端的一致,这里是缺省值)

服务标识/服务名:MyTestInstance

以后Oracle ODBC driver只需要提供给OCI服务命名(本例为ABCD),OCI就知道如何去访问真正的数据库了。

#p#

步骤3:设置ODBC DSN,即ODBC数据源。

进入控制面板/管理工具/数据源(ODBC)/系统DSN,点击添加,选择MicroSoft ODBC for Oracle,然后弹出一个对话框,填写如下内容。

1.数据源名称:MyOracleSrc 可随便起,客户程序将用它。

2.描述:一段说明文字,自己能看懂即可。

3.用户名称:mytestuser你最终需要访问的数据库所认可的用户名。

4.服务器:ABCD(即OCI设置中的服务命名。这是中文版最容易引起误解的地方。笔者开始就误以为要填写Oracle服务器的主机名)。

步骤4:客户程序通过ODBC访问数据库的方法。

客户程序访问数据库时需要三个信息:

1.数据源:MyOracleSrc,即ODBC DSN中设置的数据源名称

2.用户名:mytestuser

3.密码:password1

这样,就可以访问到192.168.0.20上的数据库MyTestInstance。

为了验证ODBC设置是否成功,可是使用DB查询分析器试用版照步骤4来进行简单的测试。

【编辑推荐】

  1. 自己导出Oracle数据库流程
  2. 误删Oracle数据库实例的控制文件
  3. 解析OracleOLAP使用MView刷新Cube
  4. Oracle献媚开源数据库MySQL分支情绪稳定
  5. 浅谈禁用以操作系统认证方式登录Oracle数据库
责任编辑:赵鹏 来源: 中国IT实验室
相关推荐

2011-07-04 13:36:26

linuxOracle

2009-08-12 14:27:36

访问MySQL数据库C# ODBC

2011-07-25 17:50:42

PostgreSQLODBC

2010-04-09 15:35:28

Oracle数据库

2009-03-16 13:30:55

脚本数据字典Oracle

2010-04-26 10:52:46

Oracle 数据库

2010-04-14 15:45:49

Oracle 数据库

2011-04-13 14:07:17

OracleSybase数据库

2010-04-09 14:37:08

Oracle数据库

2019-12-17 08:39:21

Linuxwindowsoracle

2009-03-30 14:52:43

复制数据库Oracle

2010-04-19 13:31:42

Oracle索引

2010-06-11 13:13:38

访问MySQL数据库

2010-05-10 15:50:39

Oracle数据库性能

2010-03-24 09:42:12

Oracle数据库

2010-04-29 11:53:42

Oracle数据库

2009-12-02 10:33:34

LINQ to SQL

2009-07-01 10:46:57

JSP程序JSP代码

2011-07-22 16:05:17

SDE服务Oracle数据库

2010-04-16 13:34:00

Oracle Java
点赞
收藏

51CTO技术栈公众号