Oracle 错误:12505 TNS:侦听器当前不知道连接描述符中给出的 SID

问题描述 投票:0回答:2

我尝试将我的 Netbeans Java 项目连接到 Oracle 数据库,但它显示错误

ORA:12505 TNS:listener does not currently know of SID given in connect descriptor
.

甚至当我使用SQL Developer连接时,我也收到同样的错误。

有人知道怎么解决吗?提前谢谢你。

注意:我在

SQLPlus
中使用命令
CMD
,它工作正常。我的听众没有休息。

更新: 这是我的

listener.ora
文件上下文:

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\Oracle) (程序 = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\Oracle in\oraclr19.dll") ))

LISTENER = (DESCRIPTION_LIST = (说明 = (地址 =(协议 = TCP)(主机 = 本地主机)(端口 = 1521)) (地址 =(协议 = IPC)(密钥 = EXTPROC1521)) ))

这是

lsnrctl
状态的结果

64 位 Windows 的 LSNRCTL:版本 19.0.0.0.0 - 生产于 2021 年 5 月 13 日 18:36:25

版权所有 (c) 1991, 2019, Oracle。保留所有权利。

连接到 (描述=(地址=(协议=TCP)(主机=本地主机)(端口=1521))) 聆听者的状态 ---------------------- 用于 64 位 Windows 的别名 LISTENER 版本 TNSLSNR:版本 19.0.0.0.0 - 生产开始日期 2021 年 5 月 13 日 17:28:29 正常运行时间 0 天 1 小时。 7 分钟56 sec Trace Level off 安全开启:本地 操作系统身份验证 SNMP OFF 侦听器参数 文件 C:\甲骨文 etwork dmin\listener.ora 侦听器日志文件
C:\Oracle ase\diag nslsnr\DESKTOP-A10GTQJ\listener lert\log.xml 监听端点总结...
(描述=(地址=(协议=tcp)(主机=桌面-A10GTQJ)(端口=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.\pipe\EXTPROC1521ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=DESKTOP-A10GTQJ)(PORT=5500))(Security=(my_wallet_directory=C:\ORACLE\BASE dmin\system\xdb_wallet))(Presentation=HTTP)(会话=原始)) 服务摘要...服务“48f123709e024effbc4514551f7222c6”有 1 实例。实例“system”,状态 READY,有 1 个处理程序用于 此服务...服务“52448234712340b69f274bcc790ecfe0”有 1 实例。实例“system”,状态 READY,有 1 个处理程序用于 此服务... 服务“CLRExtProc”有 1 个实例。实例 “CLRExtProc”,状态未知,此服务有 1 个处理程序... 服务“orclpdb”有 1 个实例。实例“系统”,状态 就绪,有 1 个处理程序用于此服务...服务“系统”有 1 个 实例。实例“system”,状态 READY,有 1 个处理程序用于 此服务... 服务“systemXDB”有 1 个实例。实例 “系统”,状态就绪,有 1 个处理程序用于此服务... 命令成功完成

oracle netbeans
2个回答
0
投票

顺便说一句,您可以启用 USE_SID_AS_SERVICE_listener_name。 在这种情况下,即使您在 SID 中指定了服务名称,也可以连接到您的服务。


0
投票

CLRExtProc not 数据库的 SID。它是一个允许 Oracle 与外部 .Net 库通信的扩展。如果您尝试连接到我看到的可插入数据库,那么您必须对该数据库使用 service_name,而不是 SID。您的连接字符串将如下所示:

jdbc:oracle:thin@//localhost:1521/orclpdb

注意:在容器/可插拔数据库架构中,SID 仅指向 container 数据库,绝不能用于保存应用程序对象。一般来说,最好尽可能使用 service_name。

有关其他 JDBC 连接字符串格式,请参见此处:https://www.oracle.com/a/tech/docs/java-programming-with-oracle-database-19c.pdf

© www.soinside.com 2019 - 2024. All rights reserved.