リファレンスガイド> カスタムプロシージャ用のJavaAPI> ProcedureReference
 
<g1>ProcedureReference</g1>
ProcedureReferenceインターフェイスは、プロシージャを呼び出してその出力値をフェッチする方法を提供します。また、プロシージャパラメータのメタデータ情報も提供します。
public interface ProcedureReference
 
ProcedureReferenceは、CustomProcedureインターフェイスの親インターフェイスです。また、クエリエンジンからプロシージャを検索するときのリターンタイプとしても使用されます。
各Javaオブジェクトのタイプは、JDBC仕様で指定された組み込みタイプのマッピング(java.sql.ResultSetのgetObjectメソッドによる)に従って、入力または出力パラメーターのSQLタイプに対応するデフォルトのJavaオブジェクトタイプである必要があります。
メソッドサマリー
void
void
int
Object
Object[]
ParameterInfo[]
void
メソッドの詳細
キャンセル
void cancel()
 
このメソッドは、プロシージャ参照と、基になるカーソルおよびステートメントをキャンセルします。
 
選ぶ
public void close()
 
このメソッドの実装は、このメソッドが作成したすべての開いているカーソルとすべての独立したトランザクションを閉じる必要があります。
このメソッドは、プロシージャ参照が不要になったときに呼び出されます。このメソッドは、invokegetOutputValuesなどの他の呼び出しと同時に呼び出すことができますが、同時に呼び出すと別の呼び出しで、このメソッドはCustomProcedureExceptionを引き起こすはずです。
 
getNumAffectedRows
public int getNumAffectedRows()
 
このメソッドは、プロシージャの実行中に挿入、更新、または削除された行の数を取得します。
戻り値
戻り値-1は、影響を受ける行の数が不明であることを示します。
スロー
このメソッドは、CustomProcedureExceptionを送出します。影響を受ける行の数を取得するときにエラーが発生した場合は、SQLExceptionを送出します。
 
getOutputValue
public Object[] getOutputValue (int index)
 
このメソッドは、指定されたインデックスで出力値を取得します。
戻り値
このメソッドは、指定されたインデックスでプロシージャの出力値を返します。出力カーソルは、CustomCursorまたはjava.sql.ResultSetのいずれかとして返されます。返されるオブジェクトは、タイプにリストされているJavaからSQLへの入力規則に準拠している必要があります。
このメソッドはNULLを返さないようにする必要があります。
スロー
このメソッドは、CustomProcedureExceptionを送出します。出力値の取得中にエラーが発生した場合は、SQLExceptionを送出します。インデックス値が範囲外の場合、このメソッドはArrayIndexOutOfBoundsExceptionを送出します。
 
getOutputValues
public Object[] getOutputValues()
 
このメソッドは、出力値を取得します。
戻り値
このメソッドは、プロシージャの出力値をCustomCursorまたはjava.sql.ResultSetとして返します。返されるオブジェクトは、タイプにリストされているJavaからSQLへの入力規則に準拠している必要があります。
このメソッドはNULLを返さないようにする必要があります。
スロー
このメソッドは、CustomProcedureExceptionを送出します。出力値の取得中にエラーが発生した場合は、SQLExceptionを送出します。
 
タイプ
ProcedureReferenceのメソッドであるgetOutputValuesは、プロシージャ内の出力値を取得します。返されるオブジェクトは、このセクションで定義されているJavaからSQLへの入力規則に準拠している必要があります。
各Javaオブジェクトのタイプは、(java.sql.ResultSetのgetObjectメソッドに従って)JDBC仕様で指定された組み込みタイプのマッピングに従って、入力または出力パラメーターのTDVJDBCデータタイプに対応するデフォルトのJavaオブジェクトタイプである必要があります。 。
次の表は、JavaオブジェクトタイプをTDVJDBCデータタイプにマップしています。
Javaオブジェクトタイプ
TDVJDBCデータタイプ
byte[]
BINARY、VARBINARY、またはLONGVARBINARY
java.lang.Boolean
BITまたはBOOLEAN
java.lang.Double
DOUBLE
java.lang.Float
REALまたはFLOAT
java.lang.Integer
INTEGER、SMALLINT、またはTINYINT
java.lang.Long
BIGINT
java.lang.String
CHAR、VARCHAR、またはLONGVARCHAR
java.math.BigDecimal
NUMERICまたはDECIMAL
java.sql.Blob
BLOB
java.sql.Clob
CLOB
java.sql.Date
DATE
java.sql.Time
TIME
java.sql.TimeStamp
TIMESTAMP
特別なタイプと価値
入力または出力パラメータタイプがXML_STRINGの場合、Javaオブジェクトタイプはjava.lang.Stringである必要があります。
パラメータタイプがTYPED_CURSORまたはGENERIC_CURSORの場合、Javaオブジェクトタイプは入力パラメータの場合は常にjava.sql.ResultSetであり、CustomCursorまたはjava.sql.ResultSetのいずれかになります。出力パラメータ用。
値がSQLNULLの場合、プロシージャはJavaNULLを返します。
階層データ
このインターフェースは、主に表形式のデータを中心に設計されています。階層的な入力または出力を持つストアドプロシージャは、XML文字列データを含む1つ以上のスカラーパラメータを受け入れるか返す必要があります。 java.sql.Typesを使用するメソッドの場合、階層XMLデータには定数XML_STRINGを使用する必要があります。
カーソル
タイプTYPED_CURSORおよびGENERIC_CURSORは、カーソル値の受け渡しに使用されます。型付きカーソルにはスキーマがあります。汎用カーソルのスキーマは実行時に解決されます。汎用カーソル出力を使用するプロシージャーは、SQLでは使用できません。
getParameterInfo
public ParameterInfo[] getParameterInfo()
 
このメソッドは、イントロスペクション中に呼び出され、プロシージャの入力パラメータと出力パラメータの説明を取得します。このメソッドはNULLを返さないようにする必要があります。
戻り値
このメソッドは、プロシージャの入力パラメータと出力パラメータの説明を返します。
 
呼び出し
public void invoke(Object[] inputValues)
 
このメソッドは、プロシージャを呼び出すために呼び出されます。プロシージャインスタンスごとに1回だけ呼び出されます。
パラメータ
inputValues-入力パラメーターの値。 NULLであってはなりません。
スロー
このメソッドは、CustomProcedureExceptionを送出します。呼び出し中にエラーが発生した場合は、SQLExceptionを送出します。