2

我遇到的错误超出了我在TNS-12505 中看到的错误:TNS:listener 目前不知道连接描述符中给出的 SID

我正在使用 Windows 8、Oracle 11.2 XE、java 1.7.15 和 Eclipse Juno SR2。

我收到的错误是:

java.sql.SQLException:侦听器拒绝连接并出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的 SID

我已经正确注册了驱动程序,并且我已经编辑了 listener.ora 以使服务明确,在我所看到的两种方式中都给出了示例 - 在 SID_LIST_LISTENER 下,我添加了:

(SID_DESC =
   (SID_NAME = XE)
   (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
)

在 LISTENER = (DESCRIPTION_LIST 我添加了

(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = XE)
 )

tnsnames.ora 包含,作为它的第一个条目:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

进行调用的源代码是:

Class.forName(JDBC_DRIVER);
String connectionString = "jdbc:oracle:thin:localhost:1521/XE";
myConnection = DriverManager.getConnection(connectionString, "myuser", "myuserpw");

我还对connectionString进行了以下排列。结果在这里注明:

jdbc:oracle:thin:@localhost:1521:XE // java.sql.SQLException: ORA-01017: invalid username/password; logon denied
jdbc:oracle:thin:localhost:1521:XE  // error ORA 12505
jdbc:oracle:thin:@//localhost:1521:XE // error java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
jdbc:oracle:thin:@localhost:1521/XE // error ORA-01017
jdbc:oracle:thin:@//localhost:1521/XE // error ORA-01017

有人有想法吗?

4

2 回答 2

2

我有一个答案!(我猜,血腥的固执是它自己的回报)我改变了我所做的连接调用并重组了连接字符串,如下所示:

String connectionString = "jdbc:oracle:thin:myuser/mypw@localhost:1521:XE"; 
myConnection = DriverManager.getConnection(connectionString); 

这样可行!现在下一个人可以谷歌它。每次我尝试使用三个参数的调用版本都会爆炸,但是嵌入用户名/密码的相同基本字符串在单参数调用中有效。

我相信这是 XE 数据库提供的驱动程序中的一个错误 - 哦 Oracle,你能告诉我们吗?

于 2013-03-13T17:13:43.667 回答
0

打开cmd

执行lsnrctl命令。

输入提示startLSNRCTL>

于 2014-04-30T15:08:15.437 回答