Oracle 錯誤代碼 `ORA-XXXXX` 僅是入口,**核心能力在於「從錯誤碼到根因到解決」的完整鏈路**。
$ oerr ora 600
ORA-00600: internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]
# 顯示詳細參數含義、可能原因、建議行動
$ oerr tns 12519
# 監聽器錯誤詳解
**缺點**:Windows 無此工具;信息相對通用,深層根因仍需進一步分析。Web 服務器進程 (w3wp.exe / httpd / java) 運行身份 (Application Pool Identity / 服務賬號) **缺乏 Oracle Client 安裝目錄 (ORACLE_HOME) 的讀取/執行權限**,導致無法加載 `oci.dll` / `oraociei19.dll` 等核心庫。
SELECT * FROM database_properties WHERE property_name LIKE 'NLS_%';
-- 關鍵輸出:
-- NLS_CHARACTERSET AL32UTF8 (數據庫字符集)
-- NLS_NCHAR_CHARACTERSET AL16UTF16 (國家字符集)
-- NLS_LENGTH_SEMANTICS BYTE (長度語義)
| 場景 | NLS_LANG 值 | 適用客戶端 |
|---|---|---|
| 簡體中文 Windows + 服務端 AL32UTF8 | `SIMPLIFIED CHINESE_CHINA.AL32UTF8` | SQL*Plus, ODP.NET, JDBC ( 얇은 드라이버), OCI 應用 |
| 簡體中文 Windows + 服務端 ZHS16GBK | `SIMPLIFIED CHINESE_CHINA.ZHS16GBK` | 同上 |
| Linux/Unix 環境 (Bash Profile) | `export NLS_LANG=SIMPLIFIED_CHINESE_CHINA.AL32UTF8` | SQL*Plus, OCI, Pro*C, Python cx_Oracle |
| JDBC Thin Driver (純 Java) | **無需 NLS_LANG**,JVM 內部 Unicode 直連,由 `oracle.jdbc.defaultNChar` / `connectionProperties` 控制 | JDBC Thin |
| ODP.NET Managed / Core | **無需 NLS_LANG**,內部 UTF-16 處理,配置 `web.config`/`app.config` `oracle.manageddataaccess.client` section | ODP.NET Managed |