如何正确配置ORACLE_ODBC数据源?解决你头疼的问题
想必我们在配置SQLServer数据源时,总是得心应手,但是在配置ORACLE ODBC数据源时,却总是错误百出,如此是我们甚至放弃这种让人难以接受的做法。其实,我想说,这都是我们这样一些曾经做过新手的人所面临的问题。今天参加完美林电子的面试由其中一道orale_jdbc的编程题使我突然间又怀念起了那些年,我们一起学过的java,那时候我们才是真真的菜鸟。今天我就把如何安装ORACLE_ODBC的完整方法的文字表述和贴图分享给大家,希望和我一样有过这份不愉快经历的新手们,轻松学习java吧!
步骤1:点击windows开始按钮控制面板管理工具ODBC数据源(32bit)如图一:
图一:管理工具中ODBC数据源
步骤2:单机ODBC数据源(32bit),得到界面如图二:
图二:数据源配置列表栏
这是数据源配置列表栏,可以看到我已经配置了两个数据源分别是32bit的oracle数据源和64bit的SQLSever数据源。要配置数据源必须先选择DNS我们选择系统DNS点击添加得到如图三界面:
图三:数据源驱动列表
滚动滑动条可以到Oracle in XE 选项,点击完成得到图四界面:
图四:ORACLE_ODBC配置界面
在这里大家要注意两点:第一:TNS Service Name 要在下拉列表框中选择,如图我选择的的是XE。为什么这样选择呢?这里注意了,当我们安装完ORACLE10g或其他版本后,   
在我们的主机上此ORACLE会生成一个ORACLE_HOME作为其在此主机上的标识,由于我
安装的ORACLE是ORACLEXE版本的所以他的ORACLE_HOME即是XE,我将ORACLE的服务打开,大家可以看到如图五:
图五:ORACLEXE的服务
由图可以看出:我的ORACLE主程序的服务是:OracleServiceXE 这个服务中的XE即时ORACLE_HOME. 同时大家也可以看到其他的所有服务都带有XE标识。注意我所说这么多就是让大家选中TNS Service Name的值。第二:我再将图四贴一遍如图六:
安装oracle10g图六:ORACLE_ODBC配置界面(部分)
注意图中的User ID 我当时就是不知道如何选择,后来我才知道这个是选择登陆ORACLE数据库的用户名通ORACLE会默认生成两个用户:system 和sys as sysdba这里我们要选择system. 当然如果用户在PL/SQL中创建了新账户则完全可以运用其账户。一切配置好后我们看图四,然后点击 Test Connection进行测试数据库链接。但是错误出来了:
图七:测试ORACLE_ODBC报错
怎么回事儿呢?哪儿错了呢?不好意思,刚才我关闭了如图五中的OracleXETNSListener服务,所以它报错:无监听程序,好吧那我们启动这个服务,但是不好意思,又出错了:无法启动OracleXETNSListener,相关依赖不存在,或者其他问题.如何解决这个问题呢?简单打开我们的Oracle安装路径,我的是:E:\Softwares\Oracle\app\oracle\product\10.2.0\server,好
长的路径其实只需要打开到product文件夹搜索:tnsnames.ORA和listener.ORA文件修改其中的host(表示关联到你的本机ip地址)令其等于你的电脑的名称即可以:查你的主机名称:右键单击我的电脑/计算机可以看到(win7)如图八:
图八:计算机属性界面
至于xp或者其他大家自己一下吧,我修改的listener.ORA的host如下面代码,注意红的名称和我主机的名称一致,必须一致,不区分大小写,同时tnsnames.ORA也同样修改。
否则会出现如图九或者“ora-12514错误:监听程序当前无法识别连接描述符中请求的服务”的错误:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\Softwares\Oracle\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\Softwares\Oracle\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = IDEA)(PORT = 1521))
    )
  )
DEFAULT_SERVICE_LISTENER = (XE)
图九:因Host不同而产生目标主机未被发现
一切配置和纠错完毕我们点击Test Connextion 弹出如图十所示的界面:
图十:链接数据源
点击ok!如图十一所示一切成功,你可以放心编写个java程序调用你的数据库了:
图十一:链接成功
另外我想补充一点,我的电脑是64位的我们可以使用管理工具中的ODBC 数据源(64 位),但是当我们打开选择驱动程序时却不能看到Oracle in XE驱动,如图十二:
图十二:没有oracle in XE驱动
为什么呢?原来win7以后64bit的数据源需要自己动手手动创建步骤如下:
步骤一:打开如下目录:C:\Windows\SysWOW64
步骤二:搜索: 如图十三所示,双击打开:
图十三:odbcad32
图十四:Oracle in XE
好了结果出来了,然后按照上面的顺序操作就可以了。
作者:朱立超
西安建筑科技大学2013-11-1 22:30

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。