JavaTM 2 Platform
Std. Ed. v1.3

java.sql
インタフェース CallableStatement

すべてのスーパーインタフェース:
PreparedStatement, Statement

public interface CallableStatement
extends PreparedStatement

SQL ストアドプロシージャを実行するのに使用されるインタフェースです。JDBC は、ストアドプロシージャ SQL エスケープ構文を提供します。これにより、すべての RDBMS に対し標準の方法でストアドプロシージャを呼び出せます。このエスケープ構文には、結果パラメータを含めるものと含めないものとがあります。使用するには、結果パラメータは OUT パラメータとして登録しなければなりません。ほかのパラメータは入出力両方に使用できます。パラメータは、番号により順番に参照されます。最初のパラメータは 1 です。

   {?= call <procedure-name>[<arg1>,<arg2>, ...]}
   {call <procedure-name>[<arg1>,<arg2>, ...]}
 

IN パラメータ値は、PreparedStatement から継承した set メソッドを使用して設定されます。すべての OUT パラメータのタイプはストアドプロシージャの実行前に登録しなければなりません。それらの値は、ここで提供される get メソッドの実行後に取り出されます。

CallableStatement は、1 つまたは複数の ResultSet オブジェクトを返すことがあります。複数の ResultSet オブジェクトは Statement から継承した操作で処理されます。

移植性を最大限にするには、出力パラメータを得る前に、呼び出しの ResultSet オブジェクトと更新カウントを処理しなければなりません。

JDBC 2.0 API に新しく追加されたメソッドには、「導入されたバージョン: 1.2」と表示されています。

関連項目:
Connection.prepareCall(java.lang.String), ResultSet

メソッドの概要
 Array getArray(int i)
          JDBC ARRAY パラメータの値を Java プログラミング言語の Array オブジェクトとして取得します。
 BigDecimal getBigDecimal(int parameterIndex)
          JDBC NUMERIC パラメータの値を、その値と同じ小数点以下の桁数を持つ java.math.BigDecimal オブジェクトとして取得します。
 BigDecimal getBigDecimal(int parameterIndex, int scale)
          推奨されていません。  
 Blob getBlob(int i)
          JDBC BLOB パラメータの値を Java プログラミング言語の Blob オブジェクトとして取得します。
 boolean getBoolean(int parameterIndex)
          JDBC BIT パラメータの値を Java プログラミング言語の boolean として取得します。
 byte getByte(int parameterIndex)
          JDBC TINYINT パラメータの値を Java プログラミング言語の byte として取得します。
 byte[] getBytes(int parameterIndex)
          JDBC の BINARY パラメータまたは VARBINARY パラメータの値を Java プログラミング言語の byte 値の配列として取得します。
 Clob getClob(int i)
          JDBC CLOB パラメータの値を Java プログラミング言語の Clob オブジェクトとして取得します。
 Date getDate(int parameterIndex)
          JDBC DATE パラメータの値を java.sql.Date オブジェクトとして取得します。
 Date getDate(int parameterIndex, Calendar cal)
          JDBC DATE パラメータの値を java.sql.Date オブジェクトとして取得します。
 double getDouble(int parameterIndex)
          JDBC DOUBLE パラメータの値を Java プログラミング言語の double として取得します。
 float getFloat(int parameterIndex)
          JDBC FLOAT パラメータの値を Java プログラミング言語の float として取得します。
 int getInt(int parameterIndex)
          JDBC INTEGER パラメータの値を Java プログラミング言語の int として取得します。
 long getLong(int parameterIndex)
          JDBC BIGINT パラメータの値を Java プログラミング言語の long として取得します。
 Object getObject(int parameterIndex)
          パラメータの値を Java プログラミング言語の Object として取得します。
 Object getObject(int i, Map map)
          OUT パラメータ i の値を表すオブジェクトを返し、map を使用してそのパラメータ値のカスタムマッピングを行います。
 Ref getRef(int i)
          JDBC REF(<structured-type>) パラメータの値を Java プログラミング言語の Ref オブジェクトとして取得します。
 short getShort(int parameterIndex)
          JDBC SMALLINT パラメータの値を Java プログラミング言語の short として取得します。
 String getString(int parameterIndex)
          JDBC の CHARVARCHAR、または LONGVARCHAR パラメータの値を Java プログラミング言語の String として取り出します。
 Time getTime(int parameterIndex)
          JDBC TIME パラメータの値を java.sql.Time オブジェクトとして取得します。
 Time getTime(int parameterIndex, Calendar cal)
          JDBC TIME パラメータの値を java.sql.Time オブジェクトとして取得します。
 Timestamp getTimestamp(int parameterIndex)
          JDBC TIMESTAMP パラメータの値を java.sql.Timestamp オブジェクトとして取得します。
 Timestamp getTimestamp(int parameterIndex, Calendar cal)
          JDBC TIMESTAMP パラメータの値を java.sql.Timestamp オブジェクトとして取得します。
 void registerOutParameter(int parameterIndex, int sqlType)
          順番 parameterIndex の OUT パラメータを JDBC タイプの sqlType に登録します。
 void registerOutParameter(int parameterIndex, int sqlType, int scale)
          順番 parameterIndex のパラメータを JDBC タイプの sqlType に登録します。
 void registerOutParameter(int paramIndex, int sqlType, String typeName)
          指定された出力パラメータを登録します。
 boolean wasNull()
          最後に読み込まれた OUT パラメータの値が SQL NULL かどうかを示します。
 
インタフェース java.sql.PreparedStatement から継承したメソッド
addBatch, clearParameters, execute, executeQuery, executeUpdate, getMetaData, setArray, setAsciiStream, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNull, setNull, setObject, setObject, setObject, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream
 
インタフェース java.sql.Statement から継承したメソッド
addBatch, cancel, clearBatch, clearWarnings, close, execute, executeBatch, executeQuery, executeUpdate, getConnection, getFetchDirection, getFetchSize, getMaxFieldSize, getMaxRows, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetType, getUpdateCount, getWarnings, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout
 

メソッドの詳細

registerOutParameter

public void registerOutParameter(int parameterIndex,
                                 int sqlType)
                          throws SQLException
順番 parameterIndex の OUT パラメータを JDBC タイプの sqlType に登録します。ストアドプロシージャが実行される前に、すべての OUT パラメータを登録する必要があります。

OUT パラメータ用に sqlType によって指定された JDBC タイプは、そのパラメータの値を読み込むために get メソッドで使用する必要のある Java タイプを判定します。

この出力パラメータに返されることになっている JDBC タイプがこの特定のデータベースに固有である場合、sqlTypejava.sql.Types.OTHER でなければなりません。getObject(int) メソッドは値を取り出します。

パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
sqlType - java.sql.Types によって定義される JDBC タイプコード。パラメータが JDBC タイプ NUMERIC または DECIMAL の場合、スケール値を受け入れるバージョンの registerOutParameter を使用する
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
Types

registerOutParameter

public void registerOutParameter(int parameterIndex,
                                 int sqlType,
                                 int scale)
                          throws SQLException
順番 parameterIndex のパラメータを JDBC タイプの sqlType に登録します。このメソッドは、ストアドプロシージャが実行される前に呼び出さなければなりません。

OUT パラメータ用に sqlType によって指定された JDBC タイプは、そのパラメータの値を読み込むために get メソッドで使用する必要のある Java タイプを判定します。

パラメータが JDBC タイプ NUMERIC または DECIMAL の場合は、このバージョンの registerOutParameter を使用しなければなりません。

パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
sqlType - java.sql.Types によって定義される SQL タイプコード
scale - 希望の小数点以下の桁数。0 以上の数値を指定する
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
Types

wasNull

public boolean wasNull()
                throws SQLException
最後に読み込まれた OUT パラメータの値が SQL NULL かどうかを示します。このメソッドを呼び出すのは、getXXX メソッドの呼び出しのあとでなければなりません。そうでない場合は、null かどうかを判別するために使用する値がありません。
戻り値:
最後に読み込まれたパラメータが SQL NULL の場合は true、そうでない場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合

getString

public String getString(int parameterIndex)
                 throws SQLException
JDBC の CHARVARCHAR、または LONGVARCHAR パラメータの値を Java プログラミング言語の String として取り出します。

固定長 JDBC CHAR タイプの場合、返される String オブジェクトはデータベースで JDBC CHAR が持つ値と正確に同じ値 (データベースが付加するパディングを含む) を持ちます。

パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getBoolean

public boolean getBoolean(int parameterIndex)
                   throws SQLException
JDBC BIT パラメータの値を Java プログラミング言語の boolean として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合

getByte

public byte getByte(int parameterIndex)
             throws SQLException
JDBC TINYINT パラメータの値を Java プログラミング言語の byte として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合

getShort

public short getShort(int parameterIndex)
               throws SQLException
JDBC SMALLINT パラメータの値を Java プログラミング言語の short として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合

getInt

public int getInt(int parameterIndex)
           throws SQLException
JDBC INTEGER パラメータの値を Java プログラミング言語の int として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合

getLong

public long getLong(int parameterIndex)
             throws SQLException
JDBC BIGINT パラメータの値を Java プログラミング言語の long として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合

getFloat

public float getFloat(int parameterIndex)
               throws SQLException
JDBC FLOAT パラメータの値を Java プログラミング言語の float として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合

getDouble

public double getDouble(int parameterIndex)
                 throws SQLException
JDBC DOUBLE パラメータの値を Java プログラミング言語の double として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合

getBigDecimal

public BigDecimal getBigDecimal(int parameterIndex,
                                int scale)
                         throws SQLException
推奨されていません。  

JDBC NUMERIC パラメータの値を、scale で指定された小数点以下の桁数を持つ java.math.BigDecimal オブジェクトとして取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
scale - 小数点以下の桁数
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getBytes

public byte[] getBytes(int parameterIndex)
                throws SQLException
JDBC の BINARY パラメータまたは VARBINARY パラメータの値を Java プログラミング言語の byte 値の配列として取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getDate

public Date getDate(int parameterIndex)
             throws SQLException
JDBC DATE パラメータの値を java.sql.Date オブジェクトとして取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getTime

public Time getTime(int parameterIndex)
             throws SQLException
JDBC TIME パラメータの値を java.sql.Time オブジェクトとして取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getTimestamp

public Timestamp getTimestamp(int parameterIndex)
                       throws SQLException
JDBC TIMESTAMP パラメータの値を java.sql.Timestamp オブジェクトとして取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getObject

public Object getObject(int parameterIndex)
                 throws SQLException
パラメータの値を Java プログラミング言語の Object として取得します。

このメソッドは、Java オブジェクトを返します。そのオブジェクトのタイプは、registerOutParameter メソッドを使用して登録された JDBC タイプに対応します。ターゲットの JDBC タイプを java.sql.Types.OTHER として登録することで、このメソッドを使用してデータベース固有の抽象データタイプを読み込むことができます。

パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
OUT パラメータ値を保持する java.lang.Object
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
Types

getBigDecimal

public BigDecimal getBigDecimal(int parameterIndex)
                         throws SQLException
JDBC NUMERIC パラメータの値を、その値と同じ小数点以下の桁数を持つ java.math.BigDecimal オブジェクトとして取得します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
パラメータ値 (全精度)。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合
導入されたバージョン:
1.2
関連項目:
「JDBC 2.0 API に含まれるもの」

getObject

public Object getObject(int i,
                        Map map)
                 throws SQLException
OUT パラメータ i の値を表すオブジェクトを返し、map を使用してそのパラメータ値のカスタムマッピングを行います。

このメソッドは、Java オブジェクトを返します。そのオブジェクトのタイプは、registerOutParameter メソッドを使用して登録された JDBC タイプに対応します。ターゲットの JDBC タイプを java.sql.Types.OTHER として登録することで、このメソッドを使用してデータベース固有の抽象データタイプを読み込むことができます。

パラメータ:
i - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
map - SQL タイプ名から Java クラスへのマッピング
戻り値:
OUT パラメータ値を保持する java.lang.Object
例外:
SQLException - データベースアクセスエラーが発生した場合
導入されたバージョン:
1.2
関連項目:
「JDBC 2.0 API に含まれるもの」

getRef

public Ref getRef(int i)
           throws SQLException
JDBC REF(<structured-type>) パラメータの値を Java プログラミング言語の Ref オブジェクトとして取得します。
パラメータ:
i - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
Java プログラミング言語の Ref オブジェクトとして表されたパラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合
導入されたバージョン:
1.2
関連項目:
「JDBC 2.0 API に含まれるもの」

getBlob

public Blob getBlob(int i)
             throws SQLException
JDBC BLOB パラメータの値を Java プログラミング言語の Blob オブジェクトとして取得します。
パラメータ:
i - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
Java プログラミング言語の Blob オブジェクトとして表されたパラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合
導入されたバージョン:
1.2
関連項目:
「JDBC 2.0 API に含まれるもの」

getClob

public Clob getClob(int i)
             throws SQLException
JDBC CLOB パラメータの値を Java プログラミング言語の Clob オブジェクトとして取得します。
パラメータ:
i - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
Java プログラミング言語の Clob オブジェクトとして表されたパラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合
導入されたバージョン:
1.2
関連項目:
「JDBC 2.0 API に含まれるもの」

getArray

public Array getArray(int i)
               throws SQLException
JDBC ARRAY パラメータの値を Java プログラミング言語の Array オブジェクトとして取得します。
パラメータ:
i - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
戻り値:
Java プログラミング言語の Array オブジェクトとして表されたパラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合
導入されたバージョン:
1.2
関連項目:
「JDBC 2.0 API に含まれるもの」

getDate

public Date getDate(int parameterIndex,
                    Calendar cal)
             throws SQLException
JDBC DATE パラメータの値を java.sql.Date オブジェクトとして取得します。日付の作成には、指定された Calendar オブジェクトを使用します。Calendar オブジェクトを使用すると、ドライバはカスタムタイムゾーンおよびロケールを考慮して日付を計算できます。Calendar オブジェクトを指定しない場合、ドライバはデフォルトのタイムゾーンおよびロケールを使用します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
cal - ドライバが日付を作成するために使用する Calendar オブジェクト
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getTime

public Time getTime(int parameterIndex,
                    Calendar cal)
             throws SQLException
JDBC TIME パラメータの値を java.sql.Time オブジェクトとして取得します。時刻の作成には、指定された Calendar オブジェクトを使用します。Calendar オブジェクトを使用すると、ドライバはカスタムタイムゾーンおよびロケールを考慮して時刻を計算できます。Calendar オブジェクトを指定しない場合、ドライバはデフォルトのタイムゾーンおよびロケールを使用します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
cal - ドライバが時間を作成するために使用する Calendar オブジェクト
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

getTimestamp

public Timestamp getTimestamp(int parameterIndex,
                              Calendar cal)
                       throws SQLException
JDBC TIMESTAMP パラメータの値を java.sql.Timestamp オブジェクトとして取得します。Timestamp オブジェクトの作成には、指定された Calendar オブジェクトを使用します。Calendar オブジェクトを使用すると、ドライバはカスタムタイムゾーンおよびロケールを考慮してタイムスタンプを計算できます。Calendar オブジェクトを指定しない場合、ドライバはデフォルトのタイムゾーンおよびロケールを使用します。
パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
cal - ドライバがタイムスタンプを作成するために使用する Calendar オブジェクト
戻り値:
パラメータ値。値が SQL NULL の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合

registerOutParameter

public void registerOutParameter(int paramIndex,
                                 int sqlType,
                                 String typeName)
                          throws SQLException
指定された出力パラメータを登録します。ユーザ命名出力パラメータまたは REF 出力パラメータには、このバージョンの registerOutParameter メソッドを使用します。ユーザ命名タイプの例には、STRUCT、DISTINCT、JAVA_OBJECT、および名前付き配列があります。 ストアドプロシージャの呼び出しを実行する前に、registerOutParameter を明示的に呼び出して、各 OUT パラメータのタイプを java.sql.Types から登録する必要があります。ユーザ命名パラメータの場合は、そのパラメータの完全指定された SQL タイプ名も指定します。REF パラメータでは、参照されるタイプの完全指定されたタイプ名を指定する必要があります。タイプコードやタイプ名の情報を必要としない JDBC ドライバはそれを無視します。ただし、ポーテビリティを実現するには、アプリケーションはユーザ命名パラメータおよび REF パラメータのそれらの値を提供しなければなりません。 ユーザ命名パラメータおよび REF パラメータを対象としていますが、このメソッドは任意の JDBC タイプのパラメータを登録するために使用できます。パラメータがユーザ命名タイプまたは REF タイプを持たない場合、typeName パラメータは無視されます。

注: 出力パラメータの値を読み込むときには、Java タイプ XXX がパラメータの登録されている SQL タイプに対応する getXXX メソッドを使用する必要があります。

パラメータ:
parameterIndex - 最初のパラメータは 1、2 番目のパラメータは 2、などとする
sqlType - Types からの値
typeName - SQL 構造化型の完全指定された名前
例外:
SQLException - データベースアクセスエラーが発生した場合
導入されたバージョン:
1.2
関連項目:
Types, 「JDBC 2.0 API に含まれるもの」

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.