>>--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