PL/SQL Developer 是功能強大的 Oracle IDE,但預設需要完整 Oracle Client(數百 MB、安裝繁瑣、版本鎖定)。使用 Oracle Instant Client(輕量、免安裝、解壓即用)即可實現「綠色部署」,極適合開發機、CI/CD Agent、容器環境。本文提供標準化配置流程。
前往 Oracle 官網 Instant Client Downloads,根據作業系統與位元數下載以下三個套件(以 Windows 64-bit 19.3 為例):
instantclient-basic-windows.x64-19.3.0.0.0dbru.zip(核心 OCI、OCI8、JDBC、ODBC)instantclient-sqlplus-windows.x64-19.3.0.0.0dbru.zip(可選,提供 sqlplus.exe)instantclient-tools-windows.x64-19.3.0.0.0dbru.zip(可選,含 Data Pump、SQL*Loader)關鍵:版本號需與目標資料庫相容(通常同主版本或更高均可向下相容)。
D:\oracle\instantclient_19_3。D:\oracle\instantclient_19_3\ ├── oci.dll ├── oraociei19.dll ├── sqlplus.exe ├── tnsnames.ora (手動建立) └── sqlnet.ora (手動建立)
在 Instant Client 目錄下新建兩個文字檔:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
PDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PDB1)
)
)
SQLNET.AUTHENTICATION_SERVICES = (NTS) NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT) # 可選:關閉加密以相容舊版 # SQLNET.ENCRYPTION_CLIENT = OPTIONAL # SQLNET.CRYPTO_CHECKSUM_CLIENT = OPTIONAL
以系統管理員身份開啟「編輯系統環境變數」:
| 變數名 | 變數值 | 說明 |
|---|---|---|
TNS_ADMIN | D:\oracle\instantclient_19_3 | 指向含 tnsnames.ora/sqlnet.ora 的目錄 |
PATH | 在最前面新增 D:\oracle\instantclient_19_3 | 讓 PL/SQL Developer、sqlplus 找到 oci.dll |
NLS_LANG | AMERICAN_AMERICA.AL32UTF8 | 解決中文亂碼(依資料庫字元集調整) |
注意:修改後需重啟 PL/SQL Developer 或重新登入 Windows 生效。
Tools → Preferences → Connection。Use OCI.dll from Oracle Home。D:\oracle\instantclient_19_3D:\oracle\instantclient_19_3\oci.dll
tnsnames.ora 定義的別名(ORCL、PDB1)。SELECT * FROM v$version 確認版本資訊。若不想維護 tnsnames.ora,登入視窗 Database 欄位直接填寫 EZCONNECT 字串:
192.168.1.100:1521/ORCL # 或 12c+ PDB 192.168.1.100:1521/PDB1
前提:sqlnet.ora 含 NAMES.DIRECTORY_PATH = (EZCONNECT, TNSNAMES)。
| 錯誤 | 原因 | 解決 |
|---|---|---|
| ORA-12154: TNS:could not resolve | TNS_ADMIN 未生效 / tnsnames.ora 格式錯誤 | 重啟 IDE;檢查縮排、括號;用 tnsping ORCL 測試 |
| ORA-12514: Listener does not know service | 服務名錯誤 / PDB 未開啟 | lsnrctl status 確認;12c+ 必須用 PDB 服務名 |
| ORA-01804: NLS 參數錯誤 | NLS_LANG 與資料庫字元集不符 | 設定 NLS_LANG=AMERICAN_AMERICA.AL32UTF8 或 ZHS16GBK |
| PL/SQL Developer 啟動報 "OCI.dll not found" | PATH 未包含 Instant Client 目錄 | 將目錄加到 PATH 最前端;確認 oci.dll 存在 |
@echo off REM deploy_instantclient.cmd SET IC_DIR=D:\oracle\instantclient_19_3 SETX /M TNS_ADMIN "%IC_DIR%" SETX /M PATH "%IC_DIR%;%PATH%" SETX /M NLS_LANG "AMERICAN_AMERICA.AL32UTF8" ECHO 完成,請重新登入或重啟 IDE。
Instant Client + PL/SQL Developer = 零安裝、可攜帶、版本解耦 的最佳開發組合。只要做對三件事:解壓到統一目錄、建立 tnsnames.ora/sqlnet.ora、設定 TNS_ADMIN 與 PATH,即可在任何 Windows 機器上秒級接入 Oracle。