使用 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 一致。