Oracle TNSPING正常,但sqlplus提供ORA-12154?
我在Windows服务器上运行Oracle 11,并且我登录到了同一台服务器上,试图使用SQL Plus。当我尝试连接时,我得到一个ORA-12154,即使TNSPING和其他各种诊断看起来正常 有人能提出原因吗?下面是大量的细节 如果我像这样使用EZCONNECT,我可以使用sqlplusOracle TNSPING正常,但sqlplus提供ORA-12154?,oracle,oracle11g,sqlplus,ora-12514,Oracle,Oracle11g,Sqlplus,Ora 12514,我在Windows服务器上运行Oracle 11,并且我登录到了同一台服务器上,试图使用SQL Plus。当我尝试连接时,我得到一个ORA-12154,即使TNSPING和其他各种诊断看起来正常 有人能提出原因吗?下面是大量的细节 如果我像这样使用EZCONNECT,我可以使用sqlplus sqlplus EST/EST@192.168.10.15/ORCL 。。。但是如果我试着用这样的网络连接 sqlplus EST/EST@ORCL 。。。我得到 ORA-12154: TNS:coul
sqlplus EST/EST@192.168.10.15/ORCL
。。。但是如果我试着用这样的网络连接
sqlplus EST/EST@ORCL
。。。我得到
ORA-12154: TNS:could not resolve the connect identifier specified
TNSPING工作正常
监听器如下所示:
C:\Documents and Settings\user1>lsnrctl services
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 14-NOV-2013 12:02:59
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:55 refused:0 state:ready
LOCAL SERVER
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: MARIEL, pid: 2400>
(ADDRESS=(PROTOCOL=tcp)(HOST=mariel)(PORT=1045))
The command completed successfully
以下是各种配置文件:
listener.ora
特斯奈姆斯·奥拉
sqlnet.ora
创建一个环境变量TNS_ADMIN,该变量指向tnsnames.ora文件所在的目录。然后尝试连接sqlplus 如果这样做有效,那么我猜您可能也安装了Oracle客户端软件,当您运行sqlplus时,它会在您的客户端主页中查找tnsnames.ora文件 -有关在windows中添加环境变量TNS_ADMIN的说明 1.转到控制面板/系统 2.选择高级系统设置 3.选择高级选项卡,环境变量按钮位于底部。
4.创建新变量TNS_ADMIN并给出存储.ora文件的路径。e、 g.C:\app\oracle\product\11.2.0\client\u 1\network\admin如果您的密码中有at符号,Sqlplus将给出此错误,您可以这样做。Sqlplus认为您正在输入连接字符串作为参数。更改密码您可以使用SQL Developer进行此操作 寓意:不要在Oracle密码中使用at符号 tnslsnr上升,但数据库下降 检查数据库是否正在运行
ps aux | fgrep pmon
若并没有这样的过程,那个么尝试手动启动数据库
su - oracle
export ORACLE_SID=XE
sqlplus sys as sysdba
然后在sql控制台中
startup
确保密码上没有像@这样的特殊字符。我的案子也一样 检查下面,如果它显示一个无效的密码,那么特殊字符就是原因
sqlplus anyword/anyword@yourServiceName
在这里,我花了好几个小时来琢磨我做错了什么。SQL*Plus在密码字段中做了多么愚蠢的事情!!非常感谢你的回答,我自己是不会想到这一点的。这是我的问题。我不会猜到,因为我没有使用connect的单个命令输入密码。我等待提示。这太荒谬了!谢谢这起作用了。我仍然不明白tnsping是如何找到tnsnames.ora的,但sqlplus需要环境变量的帮助?!
# sqlnet.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_2\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ps aux | fgrep pmon
su - oracle
export ORACLE_SID=XE
sqlplus sys as sysdba
startup
sqlplus anyword/anyword@yourServiceName