感覺這個plsql連接Oracle就是個傻逼。
啟動本地的Oracle10g數據庫,使用plsql連接然后備份和查詢一些記錄,媽的死活不讓我連接,使用管理員(windows電腦安裝的oracle)重啟中服務和監聽,奇怪的是使用sqlplus和oracle客戶端也能夠啟動並連接的上,無論是設置oracle_id,還是oracle_path,都不管用,最終還是錯誤模式啟動plsql后在tool-Preferences下的Oracle的Connection節點中找到Oracle Home選擇當前,使用的客戶端連接本地數據庫,因為上一次連接的是11g還是啥,這個設置默認成空了,其他的解決辦法詳見轉載地址:https://www.2cto.com/database/201507/412884.html
以下是轉載內容:----------------------------轉----------------------------------
相信這個錯誤大家都不陌生,只要安裝使用過Oracle的估計都遇到過這個問題,一般出現在用PL/SQL連接Oracle數據庫的時候發生的。
導致這個錯誤的原因以及解決方案都是多種多樣的,我也是三番五次的遇到過這個問題,今天就把ORA-12154的解決方案總結一下。
1、首先查看服務器端,Oracle服務和監聽服務是否啟動。Win+R,輸入services.msc,查看服務。檢查下圖中的兩個服務是否正在運行。

3、如果sqlplus能成功登錄,證明服務端沒有問題,那么就開始排查配置,先查看Oracle安裝目錄:D:\app\NiuNiu\product\11.2.0\dbhome_1\NETWORK\ADMIN 下的tnsnames.ora文件是否配置了相應的連接描述符。也就是查看是否配置了新的網絡服務。
另外,要注意網絡服務名,如DRP之前不能有空格,並且兩個服務之間可以有空行,但也不能有空格符。可能有了空格會識別不了吧。如下圖所示:


4、查看環境變量-系統變量Path,是否有Oracle安裝目錄:D:\app\NiuNiu\product\11.2.0\dbhome_1\bin; 這個變量是安裝Oracle的時候自動生成的,保險起見最好查看一下。

5、如果安裝的是Oracle 10g版本,則打開PL/SQL,取消登陸后,在PLSQL Developer工具欄中找到“Tools—>Preferences”,在Oracle的Connection節點中找到Oracle Home選擇OraClient10g_home1,保存后關閉PLSQL Developer,如下圖所示:

6、如果是Oracle11g ,則需要檢查是不是安裝了Oracle 32位客戶端、是否配置了相應的環境變量。
7、如果以上方法嘗試后均不見效果,那就嘗試更換plsql的版本,有可能下載plsql和安裝的Oracle數據庫版本上不兼容。