• 关于oracle 11g 64位与 32位的 plsql、及其他32位应用程序共存的问题


    因为 plsql 不支持 64位 oracle 客户端,所以plsql 必须使用 oracle 的 32位 instanclient 包。  解压缩后放一个目录,例如: D:Oracleinstantclient_10_2 

    ps: 用 10g 的32位 instantclient 包也可以连接 11g oracle 64位库

    1、进 plsql 后,在首选项下设置  oracle home 的地址:D:Oracleinstantclient_10_2, 同时设置 oci 的位置: D:Oracleinstantclient_10_2oci.dll

    2、需要在系统的环境变量内设置 tns_admin, 值为 D:Oracleinstantclient_10_2, 这让 plsql 启动时知道去哪找 tnsnames.ora 文件

    3、环境变量还需要设置 nls_lang, 值为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK, 当然这根据你自己的数据库来

    一般情况下这样后, plsql 就可以用了

    如果此时登陆发现提示 无法解析指定的连接标识符,或类似的语句, 那多半是因为监听程序没设置好了。  默认监听程序的监听列表中不指定具体的oracle 实例是哪个, 碰到这种情况就把具体的监听实例描述加上就好了(红色那段), 具体原因不知道...   配置完后,记得去重启 oracle 的listener 服务。

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = d:oracleproduct11.2.0dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:d:oracleproduct11.2.0dbhome_1inoraclr11.dll")
        )
       (SID_DESC =
          (GLOBAL_DBNAME = ORCL)
          (ORACLE_HOME = d:oracleproduct11.2.0dbhome_1)
          (SID_NAME = ORCL)
       )
    )

    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Tyson-mac)(PORT = 1521))
    (ADDRESS = (PROTOCOL = NMP)(SERVER = TYSON-MAC)(PIPE = ORAPIPE))
    )
    )

    注意: 这个位于oracle 11g安装目录下的 listener.ora 文件, 例如:D:Oracleproduct11.2.0dbhome_1NETWORKADMIN

    而不是 instantclient 下的, 因为oracle 的服务用的,指向的还是那边

    ==========================

    接着再补充:

    注意: 最好使用配套的32位 instant, 例如, 服务器是 11.2 64位,则下载 11.2 的 32位版本

    另外, 为了让其他32位应用程序使用正常, 需要设置环境变量,具体设置如下:

    ORACLE_HOME :是所有需要关联更多oracle 文件时去取的根目录, 如果你错误地设置为了 原先的 instant 的地址,那么你运行 sql plus 之类的程序就会提示错误。实验发现32位程序也需要指向 64 位的oracle根目录才正常(这点为什么没细想)

    TNS_ADMIN: 这是取 oracle 服务列表的目录, 设置后,plsql 才能正确列表列出并链接服务器。 所以这可以设置 instant 目录,并把 tnsnames.ora 文件放此目录下

    PATH: 这是其他32位应用程序找到 oci 等dll文件的搜索路径,如果不设置自然报错说没有找到组件啥的。所以,需要设置 32位的 instant 目录

    NLS_LANG:  这决定了你应用程序所链接的数据库存储的数据是用的什么格式的数据。 一般可设置为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK   如果不设应该默认是的是 unicode, 也就是3位字节存储, 那你应用程序打开后看到的从数据库中调入的数据很可能是乱码

  • 相关阅读:
    INTERVAL YEAR TO MONTH数据类型
    Oracle 中DATE类型的计算
    Oracle中特殊的变量类型
    Webview窗口设置遮罩层
    mui.init方法配置
    mui.fire()触发自定义事件
    管理员启动程序的命令
    收藏网址
    html标签
    Event对象和触发
  • 原文地址:https://www.cnblogs.com/zhenfei/p/4244868.html
Copyright © 2020-2023  润新知