PLSQL连接Oracle数据库时报ORA 12154错误的解决方法

PLSQL连接Oracle数据库时报ORA 12154错误的解决方法pl/sql连接Oracle时遇到的问题:解决办法:安装后将Oracle安装目录下的文件夹network(包括其中的子文件,其中主要是tnsnames.ora)在pl/sql菜单–“工具-首选项”中如下配置:重启pl/sql即可。原理解释:在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,SqlServer不同,这些数据库可以通过直接指定IP的方式连接,但是Or…

大家好,又见面了,我是你们的朋友全栈君。

pl/sql连接Oracle时遇到的问题:
在这里插入图片描述

解决办法:安装后将Oracle安装目录下的文件夹network(包括其中的子文件,其中主要是tnsnames.ora)

在pl/sql菜单–“工具-首选项”中如下配置:
在这里插入图片描述
重启pl/sql即可。

原理解释:

在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否则就会出现“ORA-12154: TNS: 无法解析指定的连接标识符”。

如果不知道或者忘记Oracle服务名可以通过查看服务获得,比如我这里配置的主机名是我本机,在我的电脑服务中找到oracle相关的服务
image
其中,OracleJobSchedulerORCL是管理Oracle中计划任务的,一般不用启动。
OracleOraDb10g_home1iSQL*Plus是SQL Plus的服务,如果不习惯在命令行下面操作数据库,可以不用启动。
OracleServiceORCL,OracleOraDb10g_home1TNSListener都需要开启,前者是主服务,后者是监听服务。

通过上面的服务名称,可以看出我安装的服务名就是“ORCL”,或者在服务端通过SQL Plus使用sys账号登陆,输入命令
show parameter service_name查看。
在这里插入图片描述
当在Oracle客户端中配置好Net Manager中配置好服务后就可以通过我们配置的网络服务名访问Oracle数据库了,此配置实质想D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中增加了一行配置(由于我的Oracle是安装在D盘Oracle目录中,具体路径根据安装时选择的路径而定)。

复制代码
1 # tnsnames.ora Network Configuration File: d:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
2 # Generated by Oracle configuration tools.
3
4 ORCL =
5 (DESCRIPTION =
6 (ADDRESS_LIST =
7 (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
8 )
9 (CONNECT_DATA =
10 (SERVICE_NAME = ORCL)
11 )
12 )
复制代码
如果在同一台电脑上面同时安装了Oracle客户端和服务端,那么在服务端的安装目录中也会存在同样的配置文件D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,在这种情况下如果我们配置好了客户端Net Manager然后连接Oracle数据库,可能会出现“ORA-12154: TNS: 无法解析指定的连接标识符”这时,你就应该怀疑,我到底访问的是哪个路径下的配置文件呢?此时可以使用tnsping命令
image
如果你是在客户端Net Manager中配置的网络服务,但是此时解析出来的使用参数文件却是D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora,那么我想你应该明白了。这种情况有两种解决办法:
第一:在服务端的Net Manager也配置相同的网络服务,或者直接拷贝D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中的配置到D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,每次配置了新的网络服务你都需要这么做,如果不想这么麻烦那就使用第二种解决办法。
第二:修改系统环境变量Path值,将D:\Oracle\product\10.2.0\client_1\bin;路径移至D:\Oracle\product\10.2.0\db_1\bin;前面即可一劳永逸。
注意:造成以上这种情况出现的原因是:在一台电脑上同时安装了oracle客户端和数据库服务,并且是先安装客户端,再安装数据库服务造成的,如果先安装数据库服务,再安装客户端就不会出现这种情况了。
根据以上方式配置完oracle后,相信在程序中就可以正常连接oracle数据库了。

  当我安装好PLSQL Developer软件后登陆时任然出现了“ORA-12154: TNS: 无法解析指定的连接标识符”,如果是Win7,Win8用户甚至可以会出现弹出一个白框的情况,这时需要以管理员身份运行PLSQL Developer,并且确保你的PLSQL Developer是读取的oracle客户端配置,直接取消登陆,在PLSQL Developer工具栏中找到“Tools—>Preferences”,在Oracle的Connection节点中找到Oracle Home选择OraClient10g_home1,保存后关闭PLSQL Developer就可以正常登陆了。

image
需要注意的是,在安装PLSQL Developer时不能安装在带有括号的目录中,如64bit系统的Program Files (x86)目录,就会出现无论你怎么设置,它依然不停的弹出“ORA-12154: TNS: 无法解析指定的连接标识符”。同样的问题也会出现在其他Oracle数据库管理软件中,比如Toad for Oracle

 “ORA-12154: TNS: 无法解析指定的连接标识符”是使用Oracle数据库的新手遇到的比较常见的问题之一,只要我们了解了它的工作方式,冷静排查,相信很容易就能够找到问题的解决办法的。

引用:http://www.cnblogs.com/psforever/p/3929064.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161507.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java工具大全[通俗易懂]

    java工具大全[通俗易懂]一、Java线上诊断工具ArthasArthas阿里巴巴2018年9月开源的一款Java线上诊断工具。工具的使用场景:1、这个类从哪个jar包加载的?为什么会报各种类相关的Exception?2、我改的代码为什么没有执行到?难道是我没commit?分支搞错了?3、遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?4、线上遇到某个用户的数据处理有问题,但线上同样无法debug,线下无法重现!5、是否有一个全局视角来查看系统的运行状况?6、有什么办法可以监控到JVM的

    2022年7月7日
    19
  • Coursera 助学金模板

    Coursera 助学金模板最近准备开始在Coursera上刷编程课程,然鹅作为一个穷学生当然是负担不起几百刀一节的学费,还好可以申请助学金,真是雪中送炭……于是乎,我觉得要提前编一套模板出来便于以后用……刚刚提交了PythonforEveryone课程的申请,把内容写下来记录一下……理由Dearreviewers,IamastudentfromChinawhohasnoincome…

    2022年7月24日
    10
  • 数据库连接方案比拼

    数据库连接方案比拼

    2021年7月24日
    51
  • SDRAM控制器操作时序

    SDRAM控制器操作时序此为学习http://dengkanwen.com/137.html整理的笔记,侵删!SDRAM工作原理内部的状态跳转图我们所需关注的几个地方:1)粗黑线表示在该状态下会自动跳转到另一个状态,细黑线表示需要给命令才会跳转。2)我们重点关注的几个地方:IDLE状态到WRITE状态:​1)在IDLE状态需要先给ACT命令激活某一行,此时处于Row

    2022年7月25日
    10
  • 【深度学习】【语义分割】ASPP

    【深度学习】【语义分割】ASPPASPP空洞空间卷积池化金字塔(atrousspatialpyramidpooling(ASPP))对所给定的输入以不同采样率的空洞卷积并行采样,相当于以多个比例捕捉图像的上下文。上图为deeplabv2的ASPP模块,deeplabv3中向ASPP中添加了BN层,其中空洞卷积的rate的意思是在普通卷积的基础上,相邻权重之间的间隔为rate-1,普通卷积的rate默认为1,所以…

    2022年8月21日
    10
  • 一阶倒立摆的PID_简单旋转装置

    一阶倒立摆的PID_简单旋转装置  我做PID算法的背景和经历:本人之前电子信息科学与技术专业,对控制方向颇感兴趣,刚上大学时听到实验室老师说PID算法,那年在暑假集训准备全国电子设计竞赛,我正在练习做一个以前专科的题目,帆板角度控制系统,还不懂PID是个什么玩意,老师让我把PID加到这个题目里。当时给了一些电子版的一些教程,但是没看懂。。。。。。。后来对四旋翼很感兴趣,想弄一架玩玩再亲自写程序做一架,买了PIX飞控玩了很久,自…

    2022年8月18日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号