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)
上一篇 2022年7月24日 下午9:36
下一篇 2022年7月24日 下午9:36


相关推荐

  • C语言面试题汇总(持续更)「建议收藏」

    C语言面试题汇总(持续更)「建议收藏」笔者最近在找工作,因此对应聘C/C++嵌入式开发工程师容易被问到,或者经常搞不清楚的问题做一个汇总,也希望能对找工作的小伙伴起到帮助参考的作用。本篇集中于C语言方面的面试题目。因为是自己总结的,可能会存在错误,还烦请各位读者批评指正。一、变量内存分配1.一个由C/C++编译的程序占用的内存分为以下几个部分:①栈区——局部变量——向低地址生长——自动释放——其操作方式类似于数据结构中的栈。②堆区——向高地址生长——手动分配、释放的存储区——malloc,fr..

    2022年8月28日
    4
  • 快速加速计算机的方法,电脑慢的快速解决办法 四种方法电脑速度变快10倍[通俗易懂]

    快速加速计算机的方法,电脑慢的快速解决办法 四种方法电脑速度变快10倍[通俗易懂]电脑这种东西刚买来的时候用起来“刷刷”的,随着使用时间的增加,电脑就会开始莫名的变卡、变慢。作为一个资深的电脑大神,电脑慢这种问题根本就不能算电脑问题,让电脑变快的方法有很多,而且操作都巨简单,下面就一起来看看吧。电脑慢的快速解决办法一、系统常规优化1、你可以关闭系统属性中的特效,点击开始,控制面板,系统,高级,性能,设置在视觉效果中,设置为调整为最佳性能,确定。2、双击我的电脑,属性,高级,错…

    2022年6月5日
    56
  • 《剑指offer》–二维数组中的查找、从头到尾打印链表、重建二叉树、旋转数组的最小数字

    《剑指offer》–二维数组中的查找、从头到尾打印链表、重建二叉树、旋转数组的最小数字

    2021年9月26日
    112
  • vue组件注册可以是以下哪种方式_注册组件失败怎么办

    vue组件注册可以是以下哪种方式_注册组件失败怎么办组件的组织通常一个应用会以一棵嵌套的组件树的形式来组织:例如,你可能会有页头、侧边栏、内容区等组件,每个组件又包含了其它的像导航链接、博文之类的组件。为了能在模板中使用,这些组件必须先注册以便

    2022年7月30日
    7
  • 一文告诉你什么是回调地狱,如何解决回调地狱?

    一文告诉你什么是回调地狱,如何解决回调地狱?文章目录前言一 回调地狱是什么 二 如何解决回调地狱 1 Promise2 async await 总结前言在正式了解 回调地狱 之前 我们先了解两个概念 回调函数当一个函数作为参数传入另一个参数中 并且它不会立即执行 只有当满足一定条件后该函数才可以执行 这种函数就称为回调函数 我们熟悉的定时器和 Ajax 中就存在有回调函数 setTimeout function function console log 执行了回调函数 就是回调函数 它只有在 3 秒后才会执行 consol

    2026年3月20日
    3
  • Windows 关闭端口号

    Windows 关闭端口号查询端口号占用的进程C:\Users\Administrator>netstat-ano|findstr8080TCP0.0.0.0:80800.0.0.0:0LISTENING9172TCP192.168.1.160:6085547.92.114.119:8080ESTA…

    2022年7月20日
    15

发表回复

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

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