Stored-Procedures

如何在儲存過程 (DB2) 中重新綁定包

  • February 20, 2016

我的應用程序有一些儲存過程(DB2 V 9.7.3)。我需要重新綁定儲存過程對應的包。我希望通過游標檢索包名稱並一一重新綁定包,從而在儲存過程中重新編譯它們。

要做的命令是

REBIND PACKAGE <schema>.<pkgName>

要執行此命令,我嘗試了以下選項,但都失敗了。

EXECUTE IMMEDIATE <stmt>;

CALL SYSPROC.ADMIN_CMD(<stmt>);

有沒有辦法做到這一點?任何幫助將不勝感激。

有一種方法可以通過以下常式重新綁定包

db2 "CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'SCHEMA1.PROC1', 'ANY')"
  • P -> 代表儲存過程
  • SCHEMA1.PROC1 -> 帶有模式的儲存過程名稱
  • ANY -> 為向後兼容而支持的可選輸入參數。您可以使用 ANY 或 CONSERVATIVE。

請參閱這些連結以獲取更多資訊。

http://www-01.ibm.com/support/docview.wss?uid=swg21250633

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0009863.html

**注意:**顯式重新綁定關聯的包不會重新驗證常式。使用自動重新驗證或顯式使用 ADMIN_REVALIDATE_DB_OBJECTS 過程重新驗證無效常式。常式重新驗證會自動重新綁定依賴包。

引用自:https://dba.stackexchange.com/questions/129915