HCOSS SQL CLR ストアド プロシージャは、次の操作を実行できます。
結果セットを返さない HCOSS ストアド プロシージャを呼び出すには、CALL 埋め込み SQL 文を使用します。CALL 文の使用に関する詳細は、CALL のトピックを参照してください。
ストアド プロシージャが 1 つ以上の結果セットを返す場合、一連の埋め込み SQL 文を使用して受信する必要があります。まず、CALL 文を使用してストアド プロシージャを呼び出します。次に、ASSOCIATE LOCATORS 文を使用して適切な数の結果セットを定義します。その後、定義した結果セットに対して 1 つの ALLOCATE CURSOR 文を発行します。たとえば、次のコードでは、2 つの結果セット ロケーターを割り当てられた 2 つのカーソルに関連付けることで、2 つの結果セットを返します。つまり、結果セットをそれらのカーソルにマッピングします。
EXEC SQL CALL MYPROC(:hv-country) END-EXEC EXEC SQL ASSOCIATE LOCATORS (:RS1,:RS2) WITH PROCEDURE MYPROC END-EXEC EXEC SQL ALLOCATE C1 CURSOR FOR RESULT SET :RS1 END-EXEC EXEC SQL ALLOCATE C2 CURSOR FOR RESULT SET :RS2 END-EXEC
この時点で、その他の SQL カーソルと同様に FETCH 文を使用して各結果セットをフェッチします。また、同時にこれらのカーソルへのアクセスをインターリーブすることもできます。たとえば、上記のシナリオを使用して、C1 からフェッチしてからすぐに C2 からフェッチできます。
最後に、カーソル処理が済んだら、CLOSE 文を使用して結果セット処理を終了します。
SQL(DIALECT=MAINFRAME) でコンパイルされた COBOL ストアド プロシージャにより、メインフレーム動作がエミュレートされ、実際の結果セットではなく結果セット ロケーターが返されます。COBOL および PL/I 以外の言語で記述されたアプリケーションを呼び出す場合と、SQL(DIALECT=MAINFRAME) でコンパイルされていない COBOL アプリケーションおよび PL/I アプリケーションの場合、SQL(OPTION=NORSLOCATORS) を使用してストアド プロシージャをビルドします。その後、結果セットが通常の SQL Server 結果セットとして返されます。