我的错误超出了我在TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
中看到的错误我正在使用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
有人有想法吗?
答案 0 :(得分:2)
我有一个答案! (我猜,血腥的固执是它自己的奖励) 我更改了我所做的Connection调用并重新构建了连接字符串,如:
String connectionString = "jdbc:oracle:thin:myuser/mypw@localhost:1521:XE";
myConnection = DriverManager.getConnection(connectionString);
这是有效的!现在下一个人可以谷歌了。每次尝试时,带有三个参数的调用版本都会爆炸,但是在单参数调用中嵌入了用户名/ pw的相同基本字符串。
我相信这是XE数据库提供的驱动程序中的一个错误 - 哦,Oracle,您能告诉我们吗?
答案 1 :(得分:0)
OPEN cmd
执行lsnrctl
命令。
在start
提示中输入LSNRCTL>
。