EXEC SQL 制御ステートメントの構文とオプション

EXEC SQL ユーティリティー制御ステートメントは、複数のオプションを使用して、 ユーティリティー・ジョブが実行する機能を定義します。

制御ステートメントは、ISPF/PDF 編集機能を使って作成することができます。 制御ステートメントを作成した後、それを順次データ・セットまたは区分データ・セットに 保管します。 ジョブを実行するための JCL を作成するときは、SYSIN DD ステートメントを使用して、ユーティリティー 制御ステートメントを格納するデータ・セットの名前を指定してください。

UNICODE でサブミット されたユーティリティー制御ステートメント (EXEC SQL も含む) は、処理の前に EBCDIC に 変換されます。ただし、文字ストリング定数は変換されません。文字ストリング定数は、指定されたときの文字セットの ままにされます。場合によっては、必要な動作を得るために、16 進数ストリング定数を使用する必要が生じることがあります。

構文図

>>-EXEC--SQL--+-| declare-cursor-spec |----------+--ENDEXEC----><
              '-non-select dynamic SQL statement-'            

declare-cursor-spec:

>>-DECLARE--cursor-name--CURSOR--FOR--select-statement---------><

オプションの説明

cursor-name
カーソル名を指定します。この名前は、同じ入力ストリーム内で既に宣言されている カーソルを示すものであってはなりません。Db2® クロスローダー機能を使用して、リモート・サーバー からデータをロードする場合は、3 部構成の名前でカーソルを指定する必要があり ます。EXEC SQL ユーティリティーで指定する名前の長さは、8 文字を越えてはなりま せん。
select-statement
カーソルの結果表を指定します。このステートメントには、結合、和集合、変換、集約、 特殊レジスター、およびユーザー定義関数を含め、任意の有効な SQL SELECT ステートメントを 指定できます。
non-select dynamic SQL statement
EXECUTE IMMEDIATE への入力として使用される動的 SQL ステートメントを指定します。 ユーティリティー・ステートメントでは、以下の動的 SQL ステートメントを指定できます。
  • ALTER
  • COMMENT ON
  • COMMIT
  • CREATE
  • DELETE
  • DROP
  • EXPLAIN
  • GRANT
  • INSERT
  • LABEL ON
  • LOCK TABLE
  • RENAME
  • REVOKE
  • ROLLBACK
  • SET CURRENT DECFLOAT ROUNDING MODE
  • SET CURRENT DEGREE
  • SET CURRENT LOCALE LC_CTYPE
  • SET CURRENT OPTIMIZATION HINT
  • SET PATH
  • SET CURRENT PRECISION
  • SET CURRENT RULES
  • SET CURRENT SQLID
  • UPDATE

それぞれの SQL ステートメントは、独立したスレッドとして実行します。ユーティリティーが SQL ステートメント を実行するときには、指定されたステートメント・ストリングが 構文解析され、エラーの有無が検査されます。SQL ステートメントが無効の場合は、EXEC SQL はこのステートメントを実行せず、エラー条件 を報告します。SQL ステートメントは有効でも、実行中にエラーが発生した場合は、EXEC SQL は そのエラー条件を報告します。エラーが発生した場合は、ユーティリティーは終了します。