使用 SQL Plus 登陆 Oracle12c 时,发现抛出 ORA-12560 TNS 协议适配器错误。

1 分析

打开 Windows services,可以发现相关 Oracle 服务都已启动:
打开注册表,依次进入 HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE,打开对应的 KEY_OraDB12Home,然后在右侧列表中,找到 ORACLE_SID:
这里的 ORACLE_SID 为orcl。也就是说,当前开发环境用的是 ID 为orcl 的服务。
打开系统环境变量,可以发现 ORACLE_SID 配置的是却是另一个值:
因为 SQL Plus 命令行使用的是系统环境变量中的 ORACLE_SID,与实际启动的服务不一致,自然抛出 ORA-12560 错误。

2 解决

修改系统环境变量中的 ORACLE_SID,让其与注册表中的 ORACLE_SID 一致。