2011-11-12 29 views
6
連接到Oracle數據庫

可能有人請幫助我,爲什麼我收到嘗試連接到從Java Oracle數據庫以下錯誤....錯誤從Java

連接呼叫是:

Connection con = DriverManager.getConnection(
    "jdbc:oracle:thin:@winson.net:1522/hcrod", 
    "manager", "passing"); 

我收到以下錯誤:

java.sql.SQLException: Listener refused the connection with the following error: 
ORA-12514, TNS:listener does not currently know of service requested 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:582) 
at java.sql.DriverManager.getConnection(DriverManager.java:185) 
at test_sample.main(test_sample.java:15) 

回答

0

這聽起來像在服務器上的端口不聽,端口1522

你能telnet端口成功嗎?

+0

是啊,我可以...... – Winz

+0

連接主機'winson.net:1522/hcrod'是正確的,因爲我可以通過'SQL devloper'成功連接它。 – Winz

0

Oracle的JDBC瘦URI語法如下:

jdbc:oracle:thin:[USER/PASSWORD]@//[HOST][:PORT]/SERVICE 

所以:

jdbc:oracle:thin:@//winson.net:1522/hcrod" 

注意兩條斜線的@符號後添加。

1

我看到這個錯誤出現了幾次,當我啓動數據庫後啓動TNS監聽器。當數據庫啓動時,如果偵聽器正在運行,它將向偵聽器註冊自己,但如果偵聽器未運行,則無法執行此操作。

可以手動說服數據庫向監聽器註冊自己。爲此,請連接到數據庫SYS並運行SQL語句ALTER SYSTEM REGISTER;

+0

你可以給出這樣的命令嗎? –

+0

我已經給出了你需要的唯一命令。以sys身份登錄 - 我知道你可以這樣做,因爲你已經[對這個答案進行了評論](http://stackoverflow.com/a/11836333) - 並運行我提到的一個命令。 –

6

類似的情況下爲我工作稍有其他連接字符串: jdbc:oracle:thin:@winson.net:1522:hcrod

真的沒有//與:不是/