SQL-procedure-statement
SQL 控制陳述式可容許在 SQL 控制陳述式內指定多個 SQL 陳述式。 這些陳述式定義為 SQL 程序陳述式。
附註:
- 只有在 SQL 程序中才接受 COMMIT、ROLLBACK、CONNECT、DISCONNECT、SET CONNECTION 或 SET RESULT SETS 陳述式。
- 在 SQL-routine-body中不接受具有 REPLACE 關鍵字的 ALTER PROCEDURE (SQL)、ALTER FUNCTION (SQL 純量) 或 ALTER FUNCTION (SQL 表格) 陳述式。
- SET TRANSACTION 陳述式只容許在 SQL 函數或觸發程式中。
- 只有觸發程式中才容許 SET transition-variable-statement 。 也可以在觸發程式中指定 fullselect 及 VALUES-陳述式 。
附註
註解: 註解可以包含在 SQL 程序的主體內。 除了雙橫線形式的註解 (--) 之外,註解可以以/* 開頭,並以 */ 結尾。 下列規則適用於 此形式的註解。
- 開頭字元/* 必須相鄰且位於同一行。
- 結束字元 */ 必須相鄰且位於同一行。
- 只要空格有效,就可以開始註解。
- 註解可以繼續到下一行。
偵測及處理錯誤和警告狀況: 執行 SQL 陳述式時,除非在 SQL 陳述式的說明中另有說明,否則資料庫管理程式會將陳述式處理的相關資訊儲存在診斷區 (包括 SQLSTATE 及 SQLCODE) 中。 完成狀況指出 SQL 陳述式已順利完成、已完成但有警告狀況,或已完成但有找不到狀況。 異常狀況指出 SQL 陳述式未順利完成。
在複合陳述式中可以定義條件處理程式,以在發生異常狀況、警告條件或找不到條件時執行。 條件處理程式的宣告包括要在啟動條件處理程式時執行的程式碼。 當 SQL-procedure-statement處理程序中發生順利完成以外的條件時,如果可以處理該條件的條件處理程式在範圍內,則會啟動一個這類條件處理程式來處理該條件。 如需定義條件處理程式的相關資訊,請參閱 compound-statement 。 條件處理程式中的程式碼可以檢查警告條件、找不到條件或異常狀況,並採取適當的動作。 在條件處理程式的主體開頭使用下列其中一個方法,以檢查導致處理程式啟動之診斷程式區域中的條件:
- 發出 GET DIAGNOSTICS 陳述式,以要求條件資訊。 請參閱 GET DIAGNOSTICS 陳述式。
- 測試 SQL 變數 SQLSTATE 及 SQLCODE。
如果條件是警告,且沒有條件的處理程式,則上述兩種方法也可以在條件處理程式的主體之外使用,緊接在需要條件的陳述式之後。 如果條件是錯誤,且沒有條件的處理程式,則常式或觸發程式會因錯誤條件而終止。
