動的SQL文を準備して実行します。
ANSI準拠
EXECUTE IMMEDIATEはANSI/ISO SQL:2011に準拠しています。
必要な権限
必要な権限は、SQL文およびアクセス対象のテーブルによって決まります。
呼び出し
実行可能形式。
動的SQL文。
埋め込みSQLのみ。
構文
EXECUTE IMMEDIATE statement_string
構文要素
- statement_string
- 文字列式としての動的SQL文のテキスト。
- statement_string_variable
- ホスト変数としての動的SQL文のテキスト。
使用上の注意
列式またはホスト変数のどちらとして指定する場合も、動的SQL文の長さは32000文字まで可能です。
ホスト変数として指定する場合、statement_string_variableは、以下の表に示すクライアント プログラミング言語のSQL文字列のルールに従う必要があります。
言語 | statement_stringの形式 |
---|---|
COBOL | 非数値リテラル |
C | |
PL/I | 文字列式 |
文字列変数がVARCHARである場合、文のテキストは最大64Kにできる
動的SQL文は単一のSQL文でなければならず、複文リクエストであってはなりません。
EXECUTE IMMEDIATEを実行することは、無名の動的で単一の文(マクロではなくデータを返さないもの)をPREPAREし、続いてEXECUTEするのと同じことです。
EXECUTE IMMEDIATEは、このような特殊ケースに備えて設計されています。
動的SQL文の説明:
- 以下のどのSQL文にすることもできません。
- データを返す文にすることはできません。
ABORT EXECUTE IMMEDIATE BEGIN TRANSACTION FETCH CHECKPOINT LOGOFF CLOSE LOGON COMMIT OPEN CONNECT POSITION DESCRIBE PREPARE ECHO REWIND END TRANSACTION ROLLBACK EXECUTE - Preprocessor2宣言にすることはできません。
- ホスト変数参照を組み込むことはできません。
- 動的に実行されるときに、動的カーソルを必要とします。