CALL 文は、動的 SQL 文として準備および実行できます。これは Open ESQL のプリコンパイラでのみサポートされています。
- 静的 SQL でホスト変数を使用する場合は、常にパラメーター マーカー (?) を動的 SQL で使用できます。
- パラメーター マーカーの後に IN、INPUT、OUT、OUTPUT、INOUT、および CURSOR キーワードを使用すると、静的 SQL のホスト変数パラメーターの後にそれらを使用する場合と同じ効果があります。
- ODBC の標準的なストアド プロシージャ構文に準拠するために、CALL 文全体を中かっこで囲む必要があります (OpenESQL プリコンパイラは、静的 SQL でこれを自動で行います)。次に例を示します。
move '{call myproc(?, ? out)}' to sql-text
exec sql
prepare mycall from :sql-text
end-exec
exec sql
execute mycall using :parm1, :param2
end-exec
- 配列パラメーターを使用すると、EXECUTE の FOR 句で使用する要素数を制限できます。たとえば、次のように記述します。
move 5 to param-count
exec sql
for :param-count
execute mycall using :parm1, :param2
end-exec