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