关于oracle 11g 64位及 plsql 共存的问题

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

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

 

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

2、需要在系统的环境变量内设置 tns_admin, 值为 D:\Oracle\instantclient_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:\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:d:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
   (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = d:\oracle\product\11.2.0\dbhome_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:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。