获取 ORA-12514,但我们可以通过 SQLPlus 连接
Getting ORA-12514, but we can connect via SQLPlus
我们的应用程序突然出现错误 ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
。
谷歌搜索似乎提出了一些简单的解决方案(例如找到 here),但它们对我们不起作用。
令人费解的是:
- 我们可以通过 SSH 连接到 服务器 运行 我们的应用程序,并且..
- 我们可以连接该服务器上的 SQLPlus,..
- 使用与应用程序完全相同的JDBC连接参数(我们可以在应用程序启动期间从日志中获取它们,因此我们确定它们是相同的) .
为什么我们可以用SQLPlus连接到数据库,但我们的应用程序不能?
这里有两种连接方法(JDBC 和 SQLPlus),两者都是匿名的:
JDBC
{
jdbcDriver=oracle.jdbc.OracleDriver,
jdbcUser=THE_USER,
jdbcPassword=THE_PASSWORD,
configurationVersion=1.0.14,
jdbcURL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=THE_HOST)(Port=THE_PORT))(CONNECT_DATA=(SERVICE_NAME=THE_SERVICE_NAME)))
}
SQLPlus
sqlplus THE_USER/'THE_PASSWORD@'"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=THE_HOST)(Port=THE_PORT))(CONNECT_DATA=(SERVICE_NAME=THE_SERVICE_NAME)))"
根据我们的数据库专家的说法,“Oracle Internet Directory (OID) 中存在错误条目”。
他们清理了它,现在它又能用了。抱歉,这不是很有帮助的答案,但我不知道更多细节...
我们的应用程序突然出现错误 ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
。
谷歌搜索似乎提出了一些简单的解决方案(例如找到 here),但它们对我们不起作用。
令人费解的是:
- 我们可以通过 SSH 连接到 服务器 运行 我们的应用程序,并且..
- 我们可以连接该服务器上的 SQLPlus,..
- 使用与应用程序完全相同的JDBC连接参数(我们可以在应用程序启动期间从日志中获取它们,因此我们确定它们是相同的) .
为什么我们可以用SQLPlus连接到数据库,但我们的应用程序不能?
这里有两种连接方法(JDBC 和 SQLPlus),两者都是匿名的:
JDBC
{
jdbcDriver=oracle.jdbc.OracleDriver,
jdbcUser=THE_USER,
jdbcPassword=THE_PASSWORD,
configurationVersion=1.0.14,
jdbcURL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=THE_HOST)(Port=THE_PORT))(CONNECT_DATA=(SERVICE_NAME=THE_SERVICE_NAME)))
}
SQLPlus
sqlplus THE_USER/'THE_PASSWORD@'"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=THE_HOST)(Port=THE_PORT))(CONNECT_DATA=(SERVICE_NAME=THE_SERVICE_NAME)))"
根据我们的数据库专家的说法,“Oracle Internet Directory (OID) 中存在错误条目”。
他们清理了它,现在它又能用了。抱歉,这不是很有帮助的答案,但我不知道更多细节...