【问题标题】:Connecting oracle database with jdbc用jdbc连接oracle数据库
【发布时间】:2014-11-11 06:01:15
【问题描述】:

我正在尝试一个程序来检查与下面的 oracle 数据库的连接

import java.sql.*;  
class OracleCon{  
public static void main(String args[]){  
    try{  
        //step1 load the driver class  
        Class.forName("oracle.jdbc.driver.OracleDriver");  

        //step2 create  the connection object  
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","SangamOne123");  

        //step3 create the statement object  
        Statement stmt=con.createStatement();  

        //step4 execute query  
        ResultSet rs=stmt.executeQuery("select * from emp");  
        while(rs.next())  {
            System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
        }

         //step5 close the connection object  
         con.close();  

        } catch(Exception e){
            System.out.println(e);
        }
    }  
}  

但在 eclipse 中运行后,它显示以下异常。

java.sql.SQLException: Listener 拒绝与 以下错误:ORA-12505,TNS:listener 目前不知道 连接描述符中给出的 SID

请帮助我,我是 oracle 数据库的新手。

【问题讨论】:

    标签: java oracle jdbc


    【解决方案1】:

    问题是关于 oracle 的SID (System Identifier),在安装 oracle 或创建数据库时会创建 SID。

    确保您的 SIDxe 并配置为使用侦听器。

    还可以在 oracle 安装中查看 listener.ora 文件。它应该类似于以下内容:

     SID_LIST_LISTENER =
        (SID_LIST =
            (SID_DESC =
              (SID_NAME = default)
              (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
              (PROGRAM = extproc)
              (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
            )
    
           (SID_DESC =
             (GLOBAL_DBNAME = ORCL)
             (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
             (SID_NAME = orcl)
            )
    
           (SID_DESC =
             (GLOBAL_DBNAME = BMBK)
             (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
             (SID_NAME = BMBK)
            )
    
         )
    
        LISTENER =
          (DESCRIPTION_LIST =
            (DESCRIPTION =
              (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
              (ADDRESS = (PROTOCOL = TCP)(HOST = 123.456.789.101)(PORT = 1521))
              (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
            )
          )
    

    注意SID_NAME = default 的第三行,对于您来说,SID 应该是 xe 或使用此处指定的任何内容。

    您的系统中可能还有多个 SID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 2015-03-16
      • 2021-10-24
      相关资源
      最近更新 更多