報錯內容:
e.getMessage()=== Listener refused the connection with the following error: ORA-12505,
TNS:listener does not currently know of SID given in connect descriptor
//ORA-12505: TNS: 監聽程序當前無法識別連接描述符中所給出的SID
更換數據源時,出現了以上錯誤。
說明給到的sid有誤,很有可能就是服務名和sid混淆使用。
在網上搜到了以下三種JDBC寫法:
格式一:jdbc:oracle:thin:@//<host>:<port>/<service_name>
格式二:jdbc:oracle:thin:@<host>:<port>:<SID>
格式三:jdbc:oracle:thin:@<TNSName>
第一種是監聽服務名,第二種是監聽sid服務
原始數據源使用的是sid的寫法,因此替換時把服務名當做了sid,但新數據源給的是service_name,所以發生了上述錯誤
解決方案:
按照格式一的方式,修改jdbc的寫法后,可以正常訪問。
