Stored-Procedures

顯示 DB2 儲存過程中發生錯誤的行號

  • January 21, 2021

我在我的過程中添加了一個 EXIT 處理程序來擷取 SQLSTATE 和 SQLCODE,甚至找到了一種獲取過程名稱的方法,但我還需要知道錯誤發生在哪裡。建議非常感謝。

declare EXIT handler for SQLEXCEPTION
begin
   select sysibm.routine_specific_name, SQLSTATE, SQLCODE 
   into v_sp_name, v_sqlstate, v_sqlcode 
   from sysibm.sysdummy1;

   call dbms_output.put_line('Error in '||v_sp_name ' ['||v_sqlstate, v_sqlcode||']');
end;

如果您使用的是目前受支持的 Db2 for LUW 版本(11.1 或 11.5),那麼您可以使用其中一個DBMS_UTILITY.FORMAT_CALL_STACK()DBMS_UTILITY.FORMAT_ERROR_BACKTRACE()在您的信號處理程序中記錄故障排除資訊。

您可能需要將調試程式碼添加到過程中以指示過程中的進度。

否則,您可以探索IBM Data Studio 中的常式調試器來幫助您查找 SQL 儲存過程中的錯誤

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