首頁 >資料庫 >Oracle >Oracle的12505錯誤怎麼解決

Oracle的12505錯誤怎麼解決

WBOY
WBOY原創
2022-05-25 16:02:4315422瀏覽

12505錯誤的出現原因是「service_name」和sid不一致。解決方法:1、使用「select INSTANCE_NAME from v$instance」取得資料庫中目前的sid;2、將取得的sid填入資料庫程式的連結串中即可。

Oracle的12505錯誤怎麼解決

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

Oracle的12505錯誤怎麼解決

出現12505提示已經很明確了,找不到sid對應的實例庫,也就是Oracle的「service_name」和sid不一致。

解決步驟

1、執行這條語句:

select INSTANCE_NAME from v$instance;

得到實例庫的sid

Oracle的12505錯誤怎麼解決

2、然後再用該sid登入系統即可

#ORA-12505:

之前用PL/SQL DEVELOPER和SQLPLUS 登入資料庫都沒有問題,就是應用程式透過JDBC連接Oracle時無法成功連接,出現ORA-12505錯誤listener does not currently know of SID given in connect descriptor......。

經過查找,發現Oracle的service_name 和sid_name不一致,而PL/SQL DEVELOPER和SQLPLUS 採用service_name進行連接,而應用程式是按照sid_name進行連接,所以出現PL/SQL DEVELOPER和SQLPLUS 能夠連接而應用程式卻無法連線的問題。

問題描述:

今天使用jdbc連接oracle 10.2.0.1.0 資料庫的時候出現了下列錯誤:

Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093120)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

而直接透過plsql可以正常連接資料庫,或者可以透過sqlplus 連接資料庫

經過debug和尋找相關的資料發現問題原因如下:

jdbc連接資料庫的時候,需要使用資料庫的sid_name,而不是資料庫的services_name

而使用plsql連接資料庫的時候,只需要資料庫的services_name即可,所以修改連接字串中的services_name 為sid_name

推薦教學:《Oracle影片教學

以上是Oracle的12505錯誤怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn