SQL-procedure-statement

SQL 控制陳述式可容許在 SQL 控制陳述式內指定多個 SQL 陳述式。 這些陳述式定義為 SQL 程序陳述式。

語法
讀取語法圖跳過視覺化語法圖SQL-control-statementALLOCATE CURSOR-陳述式ALLOCATE DESCRIPTOR-陳述式ALTER FUNCTION-陳述式(2)ALTER MASK-陳述式ALTER PERMISSION-陳述式ALTER PROCEDURE-陳述式(2)ALTER SEQUENCE-statementALTER TABLE-陳述式ALTER TRIGGER-陳述式ASSOCIATE LOCATORS-陳述式CLOSE 陳述式COMMENT-陳述式COMMIT 陳述式(1)CONNECT 陳述式(1)CREATE ALIAS-陳述式CREATE FUNCTION (外部純量)-陳述式CREATE FUNCTION (外部表格)-陳述式CREATE FUNCTION (有源)-陳述式CREATE INDEX 陳述式CREATE MASK-陳述式CREATE PERMISSION-陳述式CREATE PROCEDURE (外部)-陳述式CREATE SCHEMA-陳述式CREATE SEQUENCE-陳述式CREATE TABLE-陳述式CREATE TYPE-陳述式CREATE VIEW-陳述式DEALLOCATE DESCRIPTOR-陳述式DECLARE GLOBAL TEMPORARY TABLE-陳述式DELETE-陳述式DESCRIBE-陳述式DESCRIBE CURSOR-陳述式DESCRIBE INPUT-statementDESCRIBE PROCEDURE-陳述式DESCRIBE TABLE-陳述式DISCONNECT-陳述式(1)DROP 陳述式
語法 (續)
讀取語法圖跳過視覺化語法圖EXECUTE-陳述式EXECUTE IMMEDIATE-陳述式FETCH 陳述式GET DESCRIPTOR-陳述式GRANT 陳述式INCLUDE 陳述式INSERT-陳述式LABEL-陳述式LOCK TABLE-陳述式MERGE-陳述式OPEN-陳述式PREPARE 陳述式REFRESH TABLE-陳述式RELEASE-陳述式RELEASE SAVEPOINT-陳述式RENAME-陳述式REVOKE 陳述式ROLLBACK-陳述式(1)SAVEPOINT-陳述式SELECT INTO-陳述式SET CONNECTION-陳述式(1)SET CURRENT DEBUG MODE-陳述式SET CURRENT DECFLOAT ROUNDING MODE-陳述式SET CURRENT DEGREE-陳述式SET CURRENT IMPLICIT XMLPARSE OPTION-陳述式SET CURRENT TEMPORAL SYSTEM_TIME-陳述式SET DESCRIPTOR-陳述式SET ENCRYPTION PASSWORD-陳述式SET PATH-陳述式SET RESULT SETS-陳述式(1)SET SCHEMA-陳述式SET TRANSACTION-陳述式(3)SET transition-variable-statement(4)TRANSFER OWNERSHIP-陳述式TRUNCATE 陳述式UPDATE-陳述式VALUES INTO-陳述式
附註:
  1. 只有在 SQL 程序中才接受 COMMIT、ROLLBACK、CONNECT、DISCONNECT、SET CONNECTION 或 SET RESULT SETS 陳述式。
  2. SQL-routine-body中不接受具有 REPLACE 關鍵字的 ALTER PROCEDURE (SQL)、ALTER FUNCTION (SQL 純量) 或 ALTER FUNCTION (SQL 表格) 陳述式。
  3. SET TRANSACTION 陳述式只容許在 SQL 函數或觸發程式中。
  4. 只有觸發程式中才容許 SET transition-variable-statement 。 也可以在觸發程式中指定 fullselectVALUES-陳述式

附註

註解: 註解可以包含在 SQL 程序的主體內。 除了雙橫線形式的註解 (--) 之外,註解可以以/* 開頭,並以 */ 結尾。 下列規則適用於 此形式的註解

  • 開頭字元/* 必須相鄰且位於同一行。
  • 結束字元 */ 必須相鄰且位於同一行。
  • 只要空格有效,就可以開始註解。
  • 註解可以繼續到下一行。

偵測及處理錯誤和警告狀況: 執行 SQL 陳述式時,除非在 SQL 陳述式的說明中另有說明,否則資料庫管理程式會將陳述式處理的相關資訊儲存在診斷區 (包括 SQLSTATE 及 SQLCODE) 中。 完成狀況指出 SQL 陳述式已順利完成、已完成但有警告狀況,或已完成但有找不到狀況。 異常狀況指出 SQL 陳述式未順利完成。

在複合陳述式中可以定義條件處理程式,以在發生異常狀況、警告條件或找不到條件時執行。 條件處理程式的宣告包括要在啟動條件處理程式時執行的程式碼。 當 SQL-procedure-statement處理程序中發生順利完成以外的條件時,如果可以處理該條件的條件處理程式在範圍內,則會啟動一個這類條件處理程式來處理該條件。 如需定義條件處理程式的相關資訊,請參閱 compound-statement 。 條件處理程式中的程式碼可以檢查警告條件、找不到條件或異常狀況,並採取適當的動作。 在條件處理程式的主體開頭使用下列其中一個方法,以檢查導致處理程式啟動之診斷程式區域中的條件:
  • 發出 GET DIAGNOSTICS 陳述式,以要求條件資訊。 請參閱 GET DIAGNOSTICS 陳述式
  • 測試 SQL 變數 SQLSTATE 及 SQLCODE。

如果條件是警告,且沒有條件的處理程式,則上述兩種方法也可以在條件處理程式的主體之外使用,緊接在需要條件的陳述式之後。 如果條件是錯誤,且沒有條件的處理程式,則常式或觸發程式會因錯誤條件而終止。