【问题标题】:ORA-12505, TNS:listener does not currently know of SIDORA-12505, TNS: 侦听器当前不知道 SID
【发布时间】:2014-11-21 04:27:51
【问题描述】:

我是 java oracle 数据库编码的新手,在运行以下代码 (eclipse kepler) 时出现此错误:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class main {

    public static void main(String[] args) {
        try {
            Class.forName("oracle.jdbc.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return;
        }
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(
                    "jdbc:oracle:thin:@10.0.32.166:1521:orcl", "username", "password");
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }
    }
}

错误是针对 ojdbc14.jar:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:389)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:454)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at oracle.main.main(main.java:18)

虽然我尝试更改 ojdbc6.jar 但出现了不同的错误:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:480)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:508)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at oracle.main.main(main.java:18)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

at oracle.net.ns.NSProtocol.connect(NSProtocol.java:361)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:966)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:292)
... 7 more

我在 2 jar 上进行试验的原因是我不确定哪个与 jdk 1.6 兼容,因为我将在完成后部署(linux env)可执行 jar。需要帮助确定这些错误是什么以及解决这些错误的想法吗?谢谢

【问题讨论】:

    标签: java eclipse oracle


    【解决方案1】:

    您在数据库服务器 10.0.32.166 上没有“称为”orcl 的数据库,并且在端口 1521 上运行了 oracle 侦听器。

    从服务器 10.0.32.166 上的控制台执行 lsnrctl status 并查看是否有类似 Service "ORCL" has X instance(s). 的行如果没有,请确保数据库已启动并且您拥有正确的 SID 并且它正在使用监听 1521 端口。

    【讨论】:

    • 抱歉,我是 Oracle 新手。我在哪里可以运行 lsnrctl?
    • 如果您的意思是在 Windows 中使用命令提示符。我得到一个不同的错误:ORA-12504: TNS:listener is not given the SERVICE_NAME in CONNECT_DATA using theline sqlplus username@10.0.32.166 then the password
    猜你喜欢
    • 2013-01-17
    • 2015-08-31
    • 1970-01-01
    • 2017-08-22
    • 2014-04-21
    • 2013-08-14
    相关资源
    最近更新 更多