感觉这个plsql连接Oracle就是个傻逼。
启动本地的Oracle10g数据库,使用plsql连接然后备份和查询一些记录,妈的死活不让我连接,使用管理员(windows电脑安装的oracle)重启中服务和监听,奇怪的是使用sqlplus和oracle客户端也能够启动并连接的上,无论是设置oracle_id,还是oracle_path,都不管用,最终还是错误模式启动plsql后在tool-Preferences下的Oracle的Connection节点中找到Oracle Home选择当前,使用的客户端连接本地数据库,因为上一次连接的是11g还是啥,这个设置默认成空了,其他的解决办法详见转载地址:https://www.2cto.com/database/201507/412884.html
以下是转载内容:----------------------------转----------------------------------
相信这个错误大家都不陌生,只要安装使用过Oracle的估计都遇到过这个问题,一般出现在用PL/SQL连接Oracle数据库的时候发生的。
导致这个错误的原因以及解决方案都是多种多样的,我也是三番五次的遇到过这个问题,今天就把ORA-12154的解决方案总结一下。
1、首先查看服务器端,Oracle服务和监听服务是否启动。Win+R,输入services.msc,查看服务。检查下图中的两个服务是否正在运行。
![这里写图片描述](https://www.2cto.com/uploadfile/Collfiles/20150701/2015070110071034.png)
3、如果sqlplus能成功登录,证明服务端没有问题,那么就开始排查配置,先查看Oracle安装目录:D:appNiuNiuproduct11.2.0dbhome_1NETWORKADMIN 下的tnsnames.ora文件是否配置了相应的连接描述符。也就是查看是否配置了新的网络服务。
另外,要注意网络服务名,如DRP之前不能有空格,并且两个服务之间可以有空行,但也不能有空格符。可能有了空格会识别不了吧。如下图所示:
![这里写图片描述](https://www.2cto.com/uploadfile/Collfiles/20150701/2015070110071036.png)
![这里写图片描述](https://www.2cto.com/uploadfile/Collfiles/20150701/2015070110071037.png)
4、查看环境变量-系统变量Path,是否有Oracle安装目录:D:appNiuNiuproduct11.2.0dbhome_1in; 这个变量是安装Oracle的时候自动生成的,保险起见最好查看一下。
![这里写图片描述](https://www.2cto.com/uploadfile/Collfiles/20150701/2015070110071038.png)
5、如果安装的是Oracle 10g版本,则打开PL/SQL,取消登陆后,在PLSQL Developer工具栏中找到“Tools—>Preferences”,在Oracle的Connection节点中找到Oracle Home选择OraClient10g_home1,保存后关闭PLSQL Developer,如下图所示:
![这里写图片描述](https://www.2cto.com/uploadfile/Collfiles/20150701/2015070110071039.png)
6、如果是Oracle11g ,则需要检查是不是安装了Oracle 32位客户端、是否配置了相应的环境变量。
7、如果以上方法尝试后均不见效果,那就尝试更换plsql的版本,有可能下载plsql和安装的Oracle数据库版本上不兼容。