特定のストアド・プロシージャが戻すことのできる結果セットには最大数があります。戻される結果セットの数は、ストアド・プロシージャのREF CURSOR OUT
引数の数以下です。戻される結果セットの数は、この上限より少なくてもかまいませんが、上限を超えることはできません。
3.4.1.2項で説明したシステムの場合、戻すことのできる結果セットの最大数はありません。モデル1(3.4.1.1項)の場合は、プロシージャが戻すことのできる結果セットの最大数、およびドライバが異機種間サービスに戻すことのできる結果セットの最大数は、REF CURSOR OUT
引数の数により、ストアド・プロシージャに指定されています。ストアド・プロシージャの実行時に、戻される結果セットが最大数より少なければ、その他のREF CURSOR OUT
引数はNULL
に設定されます。
モデル2のデータベース・サーバーのもう1つの問題は、データベースによって送信された順序で結果セットを取得する必要があることです。このため、異機種間サービスがこれらのデータベースに接続するときにカーソル・モードで実行できません。これらのストアド・プロシージャによって戻される結果セットにアクセスするには、異機種間サービスを逐次モードにする必要があります。
逐次モードでは、ドライバから戻されるプロシージャ記述に次の情報が含まれます。
リモート・ストアド・プロシージャのすべての入力引数
出力引数はなし
REF CURSOR
型のOUT
引数1つ(ストアド・プロシージャから戻される最初の結果セットに対応)
クライアントは、このREF CURSOR
からフェッチし、仮想パッケージ・ファンクションDBMS_HS_RESULT_SET.GET_NEXT_RESULT_SET
をコールして、次の結果セットに対応するREF CURSOR
をフェッチします。すべての結果セットが取得されるまでこのファンクション・コールが繰り返されます。最後に戻される結果セットは、リモート・ストアド・プロシージャのOUT
引数となります。
逐次モードの主な制限事項は、次のとおりです。
リモート・ストアド・プロシージャから戻された結果セットは、送信された順に取得される必要があります。
ストアド・プロシージャが実行されると、以前に実行されたストアド・プロシージャから戻された結果セットがすべて(データが取得されたかどうかに関係なく)クローズされます。
関連項目:
ゲートウェイを介した結果セットのサポート方法の詳細は、ご使用のゲートウェイ固有のマニュアルを参照してください。