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 のマニュアルを参照してください。
SQL Anywhere Studio 9.0.2
Copyright © 1989–2005 Sybase, Inc. Portions copyright © 2001–2005 iAnywhere Solutions, Inc. All rights reserved.