前言
DB2 CLP (Command Line Processor) 互動模式下,預設提示字元僅顯示 db2 =>,無法得知目前連接的實例與資料庫。DB2 V8.1 Fix Pack 1 引入 DB2_CLPPROMPT Registry 變數,允許自訂提示字元並嵌入運行時變數,大幅提升操作辨識度。
啟用自訂提示字元
-- 設定 Registry 變數 (永久生效)
DB2SET DB2_CLPPROMPT="(Instance:%i, Database:%d):"
-- 驗證設定
DB2SET -ALL
支援的運行時變數
| 變數 | 解析值 |
%i | 目前實例連接的本地別名;無連接則為 DB2INSTANCE 或 DB2INSTDEF 值;否則空字串 |
%ia | 目前實例連接的授權 ID (AuthID);無連接則空字串 |
%d | 目前資料庫連接的本地別名;無連接則為 DB2DBDFT 值;否則空字串 |
%da | 目前資料庫連接的授權 ID;無連接則空字串 |
%n | 換行符號 |
實際效果示範
# 設定
DB2SET DB2_CLPPROMPT="DB2 (%ia@%i, %da@%d):"
# 啟動 CLP
DB2 => DB2 ( @, ): -- 無實例/資料庫連接
# 連接實例
DB2 => ATTACH TO DB2
DB2 (DB2ADMIN@DB2, ): -- 顯示實例授權ID與別名
# 連接資料庫
DB2 => CONNECT TO SAMPLE
DB2 (DB2ADMIN@DB2, DB2ADMIN@SAMPLE): -- 同時顯示實例與資料庫連接資訊
# 切換實例
DB2 => ATTACH TO PROD
DB2 (PRODADMIN@PROD, DB2ADMIN@SAMPLE): -- 實例變更即時反映
進階組合範例
-- 顯示授權ID@實例/資料庫,換行提示
DB2SET DB2_CLPPROMPT="%nDB2 (%ia@%i / %da@%d):%n"
-- 簡潔模式:僅顯示別名
DB2SET DB2_CLPPROMPT="[%i/%d] db2 => "
注意事項
- 提示字元字串長度限制 100 字元。
- Registry 變數修改後,需退出並重新進入 CLP 才生效。
- 適用於 DB2 UDB V8.1 FP1 及更新版本 (Linux/UNIX/Windows)。
- 若未設定
DB2_CLPPROMPT,維持硬編碼預設 db2 =>。
腦力測驗 (測試您的理解)
設定:DB2SET DB2_CLPPROMPT="db2 (%ia@%i, %da@%d):"
DB2INSTANCE=TESTING,DB2DBDFT 未設定,無實例/資料庫連接 → db2 ( @, ):
DB2INSTANCE=DB2,DB2DBDFT=SAMPLE,實例連接 AuthID=PAULZ → db2 (PAULZ@DB2, @SAMPLE):
DB2INSTANCE=DB2,DB2DBDFT=SAMPLE,僅資料庫連接 SAMPLE AuthID=PAULZ → db2 ( @DB2, PAULZ@SAMPLE):
結語
善用 DB2_CLPPROMPT 可在多實例、多資料庫環境中一眼識別目前連線上下文,避免誤操作,提升 DBA 與開發人員的操作效率與安全性。
- 上一篇文章: DB2 程式設計技巧詳解 (四) - COALESCE、ROW_COUNT、結果集回傳、型別轉換、SP 呼叫
- 下一篇文章: 檢查 DB2 Fix Pack 套用後是否需更新實例 (db2iupdt)
Copyright ©
程式碼之家 All Rights Reserved