我们有一个在本地运行的应用程序,我们遇到以下错误:
ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务
我已经测试了TNSPing正确解析的连接,我试图SQLPlus尝试连接,但失败的错误与上面相同.我用这个语法SQLPlus:
sqlplus username/password@addressname[or host name]
Run Code Online (Sandbox Code Playgroud)
我们已经证实:
我们不知道对此环境所做的任何更改.还有其他我们可以测试的吗?
我在Windows服务器上运行了Oracle 11,并且我登录到尝试使用SQL Plus的同一服务器上.当我尝试连接时,即使TNSPING和其他各种诊断看起来没问题,我也会得到ORA-12154.
谁有人建议为什么?下面的大量详细信息.
如果我像这样使用EZCONNECT,我可以使用sqlplus ..
sqlplus EST/EST@192.168.10.15/ORCL
Run Code Online (Sandbox Code Playgroud)
...但是如果我尝试使用这样的TNSNAMES进行连接......
sqlplus EST/EST@ORCL
Run Code Online (Sandbox Code Playgroud)
......我明白了......
ORA-12154: TNS:could not resolve the connect identifier specified
Run Code Online (Sandbox Code Playgroud)
TNSPING工作正常
C:\Documents and Settings\user1>tnsping ORCL
TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 12-NOV-2013 12:41:14
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
E:\app\Administrator\product\11.2.0\dbhome_2\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.15)(PORT = 1521)) (CONNECT_DATA = (SERVER = …Run Code Online (Sandbox Code Playgroud) 我正在尝试连接到安装在Linux EL 5上的oracle 11g并且出现以下错误
SQL> connect sys/password@ud06 as sysdba
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
Run Code Online (Sandbox Code Playgroud)
我在network/admin下的listener.ora如下
LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=ud06)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/home/oracle/app/oracle/product/11g)
(SID_NAME=orcl))
(SID_DESC=
(SID_NAME=plsextproc)
(ORACLE_HOME=/home/oracle/app/oracle/product/11g)
(PROGRAM=extproc)))
Run Code Online (Sandbox Code Playgroud)
我的tnsnames.ora如下
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用EasyConnect连接字符串通过代码(Ruby/DBI,但这无关紧要)连接到Oracle数据库.所有Oracle文档都说将连接字符串指定为// hostname:port/service_name.我没有需要连接的数据库的service_name,我有一个SID.有没有办法使用SID而不是服务名创建EasyConnect连接字符串?
我的连接代码如下所示:
DBI.connect("DBI:OCI8://localhost:9000/the_sid", "username here", "password here")
我一直在尝试不同的东西,根据我的尝试,我收到两条错误消息之一:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor (DBI::DatabaseError)
ORA-12154: TNS:could not resolve the connect identifier specified (DBI::DatabaseError)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用内置的Microsoft ODBC for Oracle驱动程序连接到Oracle 10g数据库.我想使用无连接的连接,所以我从www.connectionstrings.com获取连接字符串.
理想情况下,我不需要设置DNS条目或Oracle TNS条目,我可能会弄错,但我认为上面的内容会对我有用.我得到以下内容:
ERROR [NA000] [Microsoft][ODBC driver for Oracle][Oracle]ORA-12514:
TNS:listener does not currently know of service requested in connect
descriptor
ERROR [IM006] [Microsoft][ODBC Driver Manager]
Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager]
The driver doesn't support the version of ODBC behavior that the
application requested (see SQLSetEnvAttr)."
Run Code Online (Sandbox Code Playgroud)
据我所知,其他人使用Microsoft ODBC for Oracle驱动程序连接到10g,但也许我错过了一些东西.顺便说一句,我是从vb.net应用程序连接的.
我们使用System.Data.OracleClient和抽象基类DbConnection,DbCommand(等)连接到Oracle.
连接在我们的开发阶段工作正常.在暂存期间,我们遇到错误ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务.
我们的目标是在没有TNS条目的情况下进行连接,并在连接字符串中提供所有相关信息(www.connectionstrings.com/oracle#19)
我可以确认SQL plus将从登台服务器连接到所需的架构(侦听器正在侦听).连接到SQLPlus的TNS条目匹配正在构建的查询字符串的所有凭据.
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
Run Code Online (Sandbox Code Playgroud)
我们错过了服务器上的安装吗?我们可以调整什么?
任何帮助表示赞赏.