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