0

我是db2的新手,陷入了一個不應該棘手的問題。從內部存儲過程db2傳遞錯誤

我有一個過程try_a這兩個我已經宣佈了SQL退出異常處理程序調用另一個過程try_b

。 假設在try_b除以零時遇到錯誤,那麼使用SIGNAL返回該錯誤。

當try_a(退出處理程序寫入)調用try_b時,則在try_b中除零錯誤的情況下,內部塊的sql異常未顯示。

你可以請幫助,這是如何實現的。

我現在沒有示例代碼。明天會試着放這個。

+0

...是否有可能重寫'try_b'爲**而不是**生成除零錯誤?那個特定的人通常表明你首先沒有充分防範它。在這種情況下,「結果」應該是什麼? –

回答

0

在內部存儲過程中使用SIGNAL時,引發的條件是用戶定義的類型,而不是引起內部條件處理程序調用的原始條件。它有自己的SQLCODE,SQLSTATE和消息。您可以使用RESIGNAL語句來提高相同的條件。

或者,您可以將錯誤消息記錄到每個條件處理程序中的臨時表或文件中。

+0

我試圖使用繼續處理程序和存儲消息聲明全局臨時表,但沒有奏效。 resignal需要指定錯誤,但可能有任何錯誤,我不想指定相同的錯誤。將cgtt工作? – user2342436

+0

「_resignal需要指定錯誤」 - 否則不會。 「但是沒有工作」 - 認真嗎?這個對我有用。 – mustaccio