許多開發人員在使用 Oracle 資料庫時,都會遇到「ORA-12532: TNS:無效的參數」這個令人頭痛的錯誤。特別是當你明明已經設定好網路連線,重開機後卻又無法連線的情況,更是讓人抓狂。這篇文章將帶你深入了解這個錯誤的成因與解決方案。
當出現 ORA-12532 錯誤時,通常代表 TNS (Transparent Network Substrate) 設定檔中的參數有問題。常見的徵兆包括:
首先確認 tnsnames.ora 檔案中的語法是否正確,特別注意括號配對、縮排與參數拼寫:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
開啟命令提示字元,執行 lsnrctl status 確認監聽器是否正常運行。若服務未啟動,請執行 lsnrctl start。
確認 Oracle 相關服務 (如 OracleServiceORCL、OracleOraDb11g_home1TNSListener) 設為「自動」啟動類型,避免重開機後服務未自動啟動。
若上述方法都無效,可能是 Oracle 安裝時發生封包損毀。建議重新安裝或修復安裝,並確保下載的安裝檔案完整性 (檢查 MD5/SHA256)。
啟用 SQL*Net 追蹤功能可獲得更詳細錯誤資訊:在 sqlnet.ora 中加入:
TRACE_LEVEL_CLIENT = 16
TRACE_FILE_CLIENT = client.trc
TRACE_DIRECTORY_CLIENT = C:\oracle\trace
ORA-12532 雖然常見,但透過系統性排查通常能快速解決。關鍵在於:確認設定檔語法、驗證服務狀態、檢查自動啟動設定。若問題持續,考慮重新安裝或尋求 DBA 協助。