>>--EXEC SQL--.-----------------.--.----------------.->
+-FOR :row_count--+ +- :result_hvar -+
>---CALL stored_procedure_name-.------------.-END-EXEC-><
| +-- , --+ |
| V | |
+(parameter)-+
| :row_count | 整数型のホスト変数を指定します。結果およびパラメータのホスト変数がすべて同じサイズの配列で、 すべての要素を使用するわけではない場合には、使用する行数を指定します。CALL が DECLARE CURSOR 文の一部である場合は、FOR 句を使用することはできません。 |
| :result_hvar | 手続きの結果を受け取るホスト変数を指定します。 |
| stored_procedure_name | ストアドプロシージャの名前を指定します。 |
| parameter | 次の形式のリテラル、キーワード CURSOR、またはホスト変数パラメータを指定します。
[keyword=] :param_hvar [IN | INPUT | INOUT | OUT | OUTPUT] ここで、 keyword は、キーワードパラメータ用の正式なパラメータです。 :param_hvar は、ホスト変数です。 IN には、入力パラメータを指定します。 INPUT には、入力パラメータを指定します。 INOUT には、入力/出力パラメータを指定します。 OUT には、出力パラメータを指定します。 OUTPUT には、出力パラメータを指定します。 CURSOR は、結果セットを返す Oracle 8 以降のストアドプロシージャに対してのみ使用されます。 CURSOR を使用すると、対応するパラメータがアンバウンドされます。 |
ストアドプロシージャの詳細については、:
OpenESQL ストアドプロシージャを参照してください。
CALL 文を使用してストアドプロシージャを実行します。
EXEC SQL
CALL myProc(param1,param2)
END-EXEC
EXEC SQL
:myResult = CALL myFunction(namedParam=:paramValue)
END-EXEC
EXEC SQL
CALL getDept(:empName IN, :deptName OUT)
END-EXEC
EXEC SQL
DECLARE cities CURSOR FOR CALL locateStores(:userState)
END-EXEC