2014-09-26 87 views
0

的我是新來的Java的Oracle數據庫編碼和運行下面的代碼時,我得到這個錯誤(蝕開普勒):ORA-12505,TNS:監聽器目前不知道SID

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環境)可執行jar一次完成。需要幫助來確定這些錯誤是什麼以及想要解決這些錯誤的想法?謝謝

回答

3

您沒有數據庫「名爲」數據庫服務器10.0.32.166上ORCL在端口1521

運行Oracle監聽器做lsnrctl status從控制檯服務器10.0.32.166,看看你有一條線如Service "ORCL" has X instance(s).如果您沒有,確保數據庫已啓動,並且您有正確的SID,並且它正在使用端口1521上的偵聽器。

+0

對不起,但我是oracle新手。我在哪裏可以運行lsnrctl? – 2014-09-26 08:28:07

+0

如果您的意思是在Windows中使用命令提示符。我得到了一個不同的錯誤:ORA-12504:TNS:listener沒有被賦予CONNECT_DATA中的SERVICE_NAME使用行sqlplus [email protected],那麼密碼 – 2014-09-26 08:35:12

相關問題