用 PL/SQL Developer 连接公司 Oracle 数据库, 登录时出现如下错误信息: ORA-12154: TNS: 无法解析指定的连接标识符,(有时可能不会出现错误对话框, 但也连不上, 多试几次都会弹出如下图的错误对话框).
1. 检查服务
出现这种问题, 首先我们想到的是检查服务有没有问题 OracleOraDb11g_home2TNSListener. 在运行中输入 services.msc, 打开服务窗口, 看看 OracleOraDb11g_homeTNSListener 这个服务是否正在运行, 如果没有运行, 则启动.
2. 使用 SQL PLUS 测试连接.
如果还有问题, 我们使用 SQL PLUS 测试是否能够连接. 运行输入 cmd, 在命令提示符窗口中输入
sqlplus sys / 密码 @数据库 SID as sysdba
如:
sqlplus sys/abc123@orcl as sysdba
如果可以连接, 问题就好办了, 说明我们数据库实例是没问题的, 问题应该出在 oracle 客户端和 pl/sql developer 的配置上.
3. 检查 tnsnames.ora 配置
在客户端的安装路径下, 我的是 D:\oracle\instantclient_12_1\NETWORK\ADMIN, 创建一个文件, 名为: tnsnames.ora, 如果之前创建过了, 则直接打开住里追加就行了. 在 tnsnames.ora 中追加如下内容:
SID 名 =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = SID 名)
- )
注意 SID 名前面不能有任何其他字符, 尤其是空格!
保存后, 看看能不能登录. 如果还不行, 在 pl/sql developer 的登录窗口中点 "取消" 按钮, 进入 pl/sql developer 后, 执行 "工具"-> "首选项" -> 连接, 按下图所示进行配置 (其中 oracle 主目录就是 oracle 客户端的路径).
来源: http://www.linuxidc.com/Linux/2019-05/158740.htm