连接Oracle服务器(服务器我可不能控制).用PL/sql可以登陆,但用程序连接却报错:
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
The Connection descriptor used by the client was:
10.223.19.53:1521:eoa at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:260)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:440)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com..Tconn.main(Tconn.java:22)同样的程序,我连接其它的Oracle服务器则是成功的.两台Oracle 服务器Oracle的版本是一样的.
都是10.2.0.4.0程序如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn = null;
Statement stmt = null;

String URL = "jdbc:oracle:thin:@10.223.19.53:1521:eoa";
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(URL, "appser", "guangdongapp123");            System.out.println("conn "+conn);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
}

解决方案 »

  1.   

    listener does not currently know of SID given in connect descriptor 呵呵,你启动listener 
      

  2.   

    URL = "jdbc:oracle:thin://10.223.19.53:1521:eoa"; 
      

  3.   

    都不对.
    pl /sql 用的server_name
    程序用的是sid.
    我把server_name当sid了.
      

  4.   

    URL = "jdbc:oracle:thin://10.223.19.53:1521:eoa";  确定这里面写对了吗?我个人觉得eoa不是SID,应该是其他字符串(数据库实例名)
      

  5.   


    url="jdbc:oracle:thin:@192.168.0.174:1521:ORCL";eoa是数据库实例名   
      

  6.   

     “TNS:listener does not currently know of SID given in connect descriptor ”这句话可能说明了两个原因:
    1 listener没有打开,右击“我的电脑”-》管理-》服务和应用程序-》服务,看看OracleOraHome92TNSListener有没有启动,要启动
    2 SID输入错误,SID应该是数据库名,即eoa    我还有个问题就是这两个oracle数据库你确定都在同一个服务器上即同一IP上运行吗?