登陆PLSQL后总是报ORA-12154:TNS:could not resolve the connect identifier specified。

a724599216 2009-04-21 04:44:52

登陆PLSQL后总是报错:

ORA-12154:TNS:could not resolve the connect identifier specified。

环境变量:

F:\oracle\bin;F:\oracle\jre\1.4.2\bin\client;F:\oracle\jre\1.4.2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\Program Files\Common Files\Adobe\AGL

在SQL*Plus运行如下

SQL*Plus: Release 10.1.0.2.0 - Production on 星期二 4月 21 16:14:17 2009

Copyright (c) 1982, 2004, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

...全文
23943 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
samuelpan 2011-08-19
  • 打赏
  • 举报
回复
也碰到类似情况,奇怪的是本地sqlplus访问会出现12514的问题,其它机器sqlplus , pl/sql访问却没有问题。
samuelpan 2011-08-19
  • 打赏
  • 举报
回复
Oracle客户端版本问题。64bit的要用10.2.0.3的客户端。
celeron729 2011-07-03
  • 打赏
  • 举报
回复
你的oracle 用户名是否已正常建立?
hanliu13810924972 2011-05-23
  • 打赏
  • 举报
回复
可能是因为你没建 PL SQL连接数据库的实例。Oracle-->enterprise manage console-->右键数据库-->将数据库添加到树-->主机名:你要连接的数据库的IP地址-->SID:数据库名-->网络服务名随便取-->点击确定-->重启PL SQL,登录即可。
阿三 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 a724599216 的回复:]
引用 7 楼 zxf_feng 的回复:

1.你的sqlplus能正常联接吗
2.你的plsql是如何连接的,服务名创建了吗

1.不能正常连接
2.服务名不是跟数据库名一样的么
(第一次装oracle,许多东西不董,表见笑就是了)
[/Quote]

检查一下$oracle_home/network/admin目录下的tnsnames.ora,listener.ora,sqlnet.ora
看看这几个文件的内容
白发程序猿 2009-04-22
  • 打赏
  • 举报
回复
有没有配置tnsnames啊????
a724599216 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zxf_feng 的回复:]
1.你的sqlplus能正常联接吗
2.你的plsql是如何连接的,服务名创建了吗
[/Quote]
1.不能正常连接
2.服务名不是跟数据库名一样的么
(第一次装oracle,许多东西不董,表见笑就是了)
willflyz 2009-04-21
  • 打赏
  • 举报
回复
看看你的TNS配置有没有问题,IP,PORT,SID
可以用tnsping + tnsName测试一下
oraclelogan 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 a724599216 的帖子:]

登陆PLSQL后总是报错:

ORA-12154:TNS:could not resolve the connect identifier specified。

环境变量:

F:\oracle\bin;F:\oracle\jre\1.4.2\bin\client;F:\oracle\jre\1.4.2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\Program Files\Common Files\Adobe\AGL

在SQL*…
[/Quote]

服务实例创建失败吧!
xcj0722 2009-04-21
  • 打赏
  • 举报
回复
重裝﹗應該是文件有損害﹗﹗
阿三 2009-04-21
  • 打赏
  • 举报
回复
1.你的sqlplus能正常联接吗
2.你的plsql是如何连接的,服务名创建了吗
a724599216 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 superhsj 的回复:]
http://www.blogjava.net/wahahacj/archive/2007/11/19/161689.html
[/Quote]这篇文章之前我就搜到过.
我路径并没有错的
superhsj 2009-04-21
  • 打赏
  • 举报
回复
http://www.blogjava.net/wahahacj/archive/2007/11/19/161689.html
a724599216 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 superhsj 的回复:]
是不是你的连接串里有什么特殊字符导致plsql认不出来啊,没用过plsql,我猜的
[/Quote]
应该不是.偶并没有写什么特殊字符串.感谢帮忙..继续up!!很急...
superhsj 2009-04-21
  • 打赏
  • 举报
回复
是不是你的连接串里有什么特殊字符导致plsql认不出来啊,没用过plsql,我猜的
a724599216 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jssg_tzw 的回复:]
File: /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
-------
# tnsnames.ora Network Configuration File: /opt/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
~ = ~
FLO…
[/Quote]
继续up,按照楼上修改的并没有成功!
mrdavidtian 2009-04-21
  • 打赏
  • 举报
回复
File: /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
-------
# tnsnames.ora Network Configuration File: /opt/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
~ = ~
FLOWRT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP地址1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = AAA)
)
)
-------

1,确定监听器已经起来
2,
[oracle@localhost admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production>

--------------------------------------------------------------------------------
客户端在异机试一试,你的监听器不一定起来了,因为本地通信可能不会通过监听器连接(而使用进程间通信),你的sqlplus /nolog就是用进程间通信连接的。在主机执行$ORACLE_HOME/bin/lsnrctl status试一下,看看监听器到底起没起来.


--------------------------------------------------------------------------------
监听器确定起来了,因为将这个访问数据库的程序放到另外一台主机中,该程序能正常的执行,并完成对数据库的操作。


--------------------------------------------------------------------------------
如果是这样,说明listener没有问题,你同一台主机上运行程序有可能没有通过监听器连接,试一试将程序的oracle连接改成user/passwd,不使用tnsnames.ora解析。


--------------------------------------------------------------------------------
解决方法:
1. 打开<OracleHome>/network/admin/listener.ora文件,找到:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1/)
(PROGRAM = extproc)
)
)
2. 添加:
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1/)
(SID_NAME = ORACLE)
)
3. 最后变成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1/)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = AAA)
(ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1/)
(SID_NAME = AAA)
)
)
4. 保存文件,重启服务中的TNSListener,OK!

新闻来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2008/0921/61362.html

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧