Collection Contents 前へ 次へ PDF

Mobile Link およびリモート・データ・アクセスの ODBC ドライバ

Oracle 対応の iAnywhere Solutions ODBC ドライバ

ストアド・プロシージャの結果


接続オプション ProcedureRetResults がアクティブの場合、ドライバはストアド・プロシージャまたは関数から結果セットを返します。また、SQLGetInfo(SQL_MULT_RESULTS_SETS) は Y を返し、SQLGetInfo(SQL_BATCH_SUPPORT) は SQL_BS_SELECT_PROC を返します。このオプションをオンにして、結果セットを返さないストアド・プロシージャを実行すると、パフォーマンスが若干低下します。

この機能を使用するには、ストアド・プロシージャを一定のフォーマットにする必要があります。まず、パッケージを作成してプロシージャで使用するすべてのカーソルを定義し、次に新しいカーソルを使用してプロシージャを作成します。次に例を示します。

Create or replace package GEN_PACKAGE as
CURSOR G1 is select CHARCOL from GTABLE2;
type GTABLE2CHARCOL is ref cursor return G1%rowtype;
end GEN_PACKAGE;
Create or replace procedure GEN_PROCEDURE1 (
  rset IN OUT GEN_PACKAGE.GTABLE2
  CHARCOL, icol INTEGER) as
begin
   open rset for select CHARCOL from GTABLE2
     where INTEGERCOL <= icol order by INTEGERCOL;
end;

結果セットを持つストアド・プロシージャを実行する場合、プロシージャの引数リストに結果セットの引数を含めないでください。上記の例の場合、次のように実行されます。

{call GEN_PROCEDURE1 (?)}

ここで、? は icol 引数のパラメータです。

詳細については、ご使用の Oracle SQL のマニュアルを参照してください。


Collection Contents 前へ 次へ PDF