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