EXTERNAL NAME LANGUAGE JAVA を使用して作成したストアド・プロシージャは、Java メソッドのラッパとして使用できます。この項では、ストアド・プロシージャ内で OUT または INOUT パラメータを利用する Java メソッドの記述方法について説明します。
Java は、INOUT または OUT パラメータの明示的なサポートはしていません。ただし、パラメータの配列は使用できます。たとえば、整数の OUT パラメータを使用するには、1 つの整数だけの配列を作成します。
public class Invoice { public static boolean testOut( int[] param ) { param[0] = 123; return true; } } |
次のプロシージャでは、testOut メソッドを使用します。
CREATE PROCEDURE testOut( OUT p INTEGER ) EXTERNAL NAME 'Invoice.testOut([I)Z' LANGUAGE JAVA; |
文字列 ([I)Z
は Java メソッドのシグニチャで、メソッドが単一のパラメータを持ち、このパラメータが整数の配列であり、ブール値を返すことを示しています。OUT または INOUT パラメータとして使用するメソッド・パラメータが、OUT または INOUT
パラメータの SQL データ型に対応する Java データ型の配列になるように、メソッドを定義します。
これをテストするには、初期化されていない変数を使用してストアド・プロシージャを呼び出します。
CREATE VARIABLE zap INTEGER; CALL testOut( zap ); SELECT zap; |
結果セットは 123
です。
メソッドのシグニチャを含む構文の詳細については、CREATE PROCEDURE 文 [Web サービス]を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |