ORA-12560解決方法
今天在進行oracle數據imp/exp時突然發現在cmd下執行exp輸入scott/tiger後時提示:
EXP-00056: 遇到 ORACLE 錯誤 12560
ORA-12560: TNS: 協議適配器錯誤
EXP-00000: 導出終止失敗
開始以為自己輸錯用戶名了,畢竟在oracle這裡我不太熟悉。再次輸入用戶名和密碼,依舊報錯。
靜下來想想----監聽器和數據庫實例都已經啟動了而且還是用自己做的批處理腳本。在Linxu下我也是可以imp/exp的,Linxu下沒有注冊表這種概念,而存在環境變量這種理念。排除注冊表後不同點就在這裡了。
於是我谷歌之......
結果和我料想的一樣,注冊表中HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1下ORACLE_SID的鍵值和我的數據庫實例名相同都是orc。現在可以排除注冊表了。然後設置系統環境變量ORACLE_SID=orc然後再到cmd下重新exp沒有提示任何錯誤可以導出了。
再做實驗驗證是環境變量的原因,我set ORACLE_SID=orcs後,再exp又出現上面的的ORA-12560錯誤了,再set 回來ORACLE_SID=orc,問題就又解決了。
以前在Eygle的一本書上曾看到過在Linxu下環境變量和oracle的關系。在windows下個人認為和注冊表的關聯會多些,對於我這個更習慣用命令行的人來說在windows下和環境變量也有一定的聯系.