【发布时间】:2021-08-03 16:40:34
【问题描述】:
我尝试将我的 Netbeans Java 项目连接到 Oracle 数据库,但它显示错误 ORA:12505 TNS:listener does not now know of SID given in connect descriptor 即使我使用 SQL Developer 连接,我也收到了同样的错误。
有人知道怎么解决吗?提前谢谢你。
注意:我在 CMD 中使用命令 SQLPlus,它工作正常。我的听众没有休息。
更新: 这是我的 listener.ora 文件上下文:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\Oracle) (程序 = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\Oracle\bin\oraclr19.dll") ))
监听器 = (DESCRIPTION_LIST = (描述= (地址 =(协议 = TCP)(主机 = 本地主机)(端口 = 1521)) (地址 =(协议 = IPC)(密钥 = EXTPROC1521)) ))
这是 lsnrctl status 的结果
适用于 64 位 Windows 的 LSNRCTL:版本 19.0.0.0.0 - 开始生产 2021 年 5 月 13 日 18:36:25
版权所有 (c) 1991、2019、甲骨文。保留所有权利。
连接到 (描述=(地址=(协议=TCP)(主机=本地主机)(端口=1521))) 监听器的状态 ------------------------ Alias LISTENER 版本 TNSLSNR 用于 64 位 Windows:版本 19.0.0.0.0 - 生产开始日期 2021 年 5 月 13 日 17:28:29 正常运行时间 0 天 1 小时。 7 分钟。 56 sec Trace Level off 安全开启:本地 操作系统身份验证 SNMP OFF 侦听器参数 文件 C:\Oracle\network\admin\listener.ora 侦听器日志文件
C:\Oracle\base\diag\tnslsnr\DESKTOP-A10GTQJ\listener\alert\log.xml 监听端点总结...
(描述=(地址=(协议=tcp)(主机=桌面-A10GTQJ)(端口=1521))) (描述=(地址=(协议=ipc)(管道名称=\.\pipe\EXTPROC1521ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=DESKTOP-A10GTQJ)(PORT=5500))(Security=(my_wallet_directory=C:\ORACLE\BASE\admin\system\xdb_wallet))(Presentation=HTTP)(会话=原始)) 服务摘要...服务“48f123709e024effbc4514551f7222c6”有 1 实例。实例“系统”,状态 READY,有 1 个处理程序 此服务...服务“52448234712340b69f274bcc790ecfe0”有 1 实例。实例“系统”,状态 READY,有 1 个处理程序 此服务... 服务“CLRExtProc”有 1 个实例。实例 "CLRExtProc",状态 UNKNOWN,有 1 个用于此服务的处理程序... 服务“orclpdb”有 1 个实例。实例“系统”,状态 READY, 有 1 个用于此服务的处理程序...服务“系统”有 1 实例。实例“系统”,状态 READY,有 1 个处理程序 此服务... 服务“systemXDB”有 1 个实例。实例 “系统”,状态 READY,有 1 个用于此服务的处理程序... 命令成功完成
【问题讨论】:
-
您需要发布所涉及的连接字符串示例、listener.ora 文件的内容以及
lsnrctl status的输出。 -
谢谢,我更新了这个问题。
-
最好将实际文本添加到您的问题中,而不是链接到图像。
-
作为一个侧面观察,您似乎已将容器数据库命名为“SYSTEM”。不是一个很好的选择。首先,名称确实应该传达一些含义,而 SYSTEM 并没有真正做到这一点。其次,SYSTEM也是数据库中默认账户之一的名称,虽然没有技术上的冲突,但会使得讨论和交流容易出错。在命名容器时,为什么不使用默认的 CDB?