• win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法


           今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助。

           不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题。

           今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正常使用,就是用PB连接oracle时怎么也连不上,一直找不到解决方案,于是听取了他们的意见,抱着一线希望,把PB和oracle都卸了重装,可是,还是同样的错误啊!!!要崩溃了)问题依然没有得到解决。

    但是,功夫不负有心人,在经过自己无数次的尝试与失败之后,终于解决了这个问题,所以留下这篇随笔与大家分享,也给自己留下个纪念。

    首先,说一下我的电脑系统与安装的软件:

    (1)win7 64位 专业版

    (2)PowerBuilder11.5

    (3)Oracle Database 11g Release 2 (11.2.0.1.0) for Microsoft Windows (x64)

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html(oracle下载地址)

    具体的软件下载过程与安装过程我这里就不在讲解,百度上都有

    现在讲解我PB连接Oracle数据库的过程及出现的问题和解决方法

    一、安装好PB和oracle之后,就可以在PB里连接oracle数据库了

    具体连接步骤为:打开DB Profile—>选中O 10 Oracle 10g—>New(也可以直接点击右键选择New Profile...)—>填写好Connection中的Profile name,Server,Login ID,Password和System中的PowerBuilder Catalog Table Owner(注:该项与Connection中Login ID一样,如果不一样会出现如下错误:)

    填好之后可以选择Preview中的Test Connection测试连接,但是我在测试的时候,就出现了如下错误:

    原因:我安装的Oracle是64位的,里面的oci.dll也是64位的,PB需要要使用32位的oci.dll,所以连接时就无法加载oci.dll,

    因此就需要下载一个32位的 instant client来支持PB调用。由此得到以下解决方案:

    解决方案其实很简单,就四步

    第一步:下载一个Instant Client for Microsoft Windows (32-bit) (注:这个是关键,一定要下32位的,千万别下成了下64位的

    (下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)

    如果下成了64位的还是会出现同样的问题,问题并不能得到解决(原因上面已经说清楚了)

    第二步:将下载的压缩包解压得到instantclient_11_2文件夹,然后将文件夹复制到Oracle安装目录下的Product文件夹下,

    以我的为例:放在D:Oracleappzyproduct里,即:D:Oracleappzyproductinstantclient_11_2;

    第三步:在Oracle安装目录下找到NETWORK文件夹,然后将整个NETWORK文件夹复制到D:Oracleappzyproductinstantclient_11_2文件夹里,

    (以我的为例:我的NETWORK文件夹在如下目录里D:Oracleappzyproduct11.2.0dbhome_1)

    如果没有复制NETWORK文件到instantclient_11_2文件夹里或者复制得不全,都会出现如下错误:

    第四步:配置环境变量(昨天忘了写第四步,这一步很重要,如果环境变量不配置,还是会出现同样的问题)

    步骤:右键我的电脑—>属性—>高级系统设置—>高级—>环境变量—>系统变量

    找到Path,将instantclient_11_2中的oci.dll的路径添加的Path路径中。

    以我的为例:即将D:Oracleappzyproductinstantclient_11_2;添加到Path中。

    完成以上四步之后,问题就解决了。重新打开PB,根据上面的连接步骤连接,就能连接成功了。

    如下图:

    如图就连接成功了,在Database中就能看到连接好的数据库了。

    另外:在连接的过程中可能会遇到如下问题:

    出现这个问题说明你监听器没开,解决办法很简单,到服务里开启就行

    具体步骤:点击开始菜单—>在搜索框中输入“服务”—>点击打开—>找到以下两项,将其开启即可:

       

    今天就和大家分享这些内容,如有不正确的地方,欢迎大家批评指正,关于以上问题,大家如有更好解决方案,欢迎大家前来交流!

  • 相关阅读:
    HDUOJ--4565 So Easy!
    简单的java实验,涉及到 类继承以及接口问题,方法体的重写(区别于重载)
    java 快速求素数
    狄斯奎诺(dijkstra 模板)
    2014 蓝桥杯 阶梯报告(含代码 详细讲解)
    HDUOJ---汉洛塔IX
    小错误系列
    HDUOJ-----4510 小Q系列故事——为什么时光不能倒流
    HDUOJ----4509湫湫系列故事——减肥记II
    HDUOJ-----4506小明系列故事——师兄帮帮忙
  • 原文地址:https://www.cnblogs.com/Yingzh/p/4687892.html
Copyright © 2020-2023  润新知