sqlplus控制台能正常连接oracle12,但是使用plsql无法连接。
问题一、oracle12c监听服务启动后自动关闭。
**原因:**oracle12c安装成功后,修改计算机名为localhost,导致监听服务无法启动。
解决方法:
在D:\software\oracle_client\instantclient_12_2\NETWORK\ADMIN目录下,修改tnsnames.ora文件,将host改为修改后的主机名。如下图:
在这里插入图片描述
具体配置如下:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-ZXD1I9U)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
注意:个人总结:计算机名即使要修改,也不能改成localhost,亲测改成localhost之后,不管你怎么修改tnsnames.ora文件中的host为localhost,监听服务仍启动后自动关闭。
问题二、plsql连接oracle报12514监听程序当前无法识别连接描述符中请求的服务
原因:listener.ora少配置东西了。
解决方法:
原来listener.ora中只有:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = DESKTOP-ZXD1I9U))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
原因是:少配置了,修改listener.ora文件如下:
# listener.ora Network Configuration File: D:\software\oracle_client\instantclient_12_2\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-ZXD1I9U)(PORT = 1521))
)
ADR_BASE_LISTENER = D:\software\oracle12c_data\lenovo\virtual\product\12.2.0\dbhome_1\log
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = D:\software\oracle12c_data\lenovo\virtual\product\12.2.0\dbhome_1)
(SID_NAME = ORCL)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = D:\software\oracle12c_data\lenovo\virtual\product\12.2.0\dbhome_1)
(SID_NAME = orcl)
)
)
保存后,重新启动serviceOracle服务和监听服务,plsql连接成功!!
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\lovelyCute\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\lovelyCute\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)这种情况改了不好使oracle11g
本文详细解析了Oracle12c环境下,sqlplus能够正常连接数据库,但PL/SQL却无法连接的问题。主要涉及两个关键场景:一是由于主机名更改为localhost导致的监听服务自动关闭;二是由于listener.ora配置不全引起的PL/SQL连接失败。通过修改tnsnames.ora和listener.ora文件中的HOST参数,并补充SID_LIST_LISTENER部分的配置,最终实现了PL/SQL的成功连接。
4989

被折叠的 条评论
为什么被折叠?



