建立 SQL 存儲過程時遭遇:
SQL7032N 未創建 SQL 過程 "TEST"。診斷文件為 "P2409650.log"。 SQLSTATE=42904
DB2ADMIN.TEST - 創建存儲過程返回 -7032。
系統提示缺少診斷日誌檔 P2409650.log,實際上是後端 C 編譯器未正確配置,導致存儲過程轉換為共享庫(DLL/SO)編譯失敗。
DB2 SQL 存儲過程建立流程:
function/routine/sqlproc/...若編譯器環境變數(INCLUDE、LIB、PATH)未正確傳遞給 DB2 編譯腳本 sr_cpath.bat,編譯步驟靜默失敗,拋出 SQL7032N。
<DB2安裝目錄>\sql\lib\function\routine\sr_cpath.batrem === 設定 Visual C++ 6.0 路徑 ===
set VCV6_DRIVE=C:\Program Files\Microsoft Visual Studio
set INCLUDE=%INCLUDE%;%VCV6_DRIVE%\VC98\ATL\INCLUDE;%VCV6_DRIVE%\VC98\MFC\INCLUDE;%VCV6_DRIVE%\VC98\INCLUDE
set LIB=%LIB%;%VCV6_DRIVE%\VC98\MFC\LIB;%VCV6_DRIVE%\VC98\LIB
set PATH=%PATH%;%VCV6_DRIVE%\COMMON\TOOLS\WINNT;%VCV6_DRIVE%\COMMON\MSDEV98\BIN;%VCV6_DRIVE%\COMMON\TOOLS;%VCV6_DRIVE%\VC98\BIN;%VCV6_DRIVE%\VC98\MFC\LIB;%VCV6_DRIVE%\VC98\LIB
關鍵點: 路徑需根據實際 VS 安裝位置調整。若使用較新 VS 版本(如 VS2017/2019),請參考 DB2 文件對應的sr_cpath.bat範例修改路徑(通常指向VC\Tools\MSVC\...)。
db2stop && db2start)使環境生效。在 DB2 命令視窗執行:
cl /?
若顯示 Microsoft C/C++ 編譯器版本資訊,表示編譯器可被正確調用。
PATH 指向 64 位元 cl.exe。sr_cpath.bat 指向 DB2 當前支援的版本。gcc、libstdc++、make 等建置工具,通常預設即可,無需手動配置 sr_cpath。