Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


17.4.4 PreparedStatementインタフェース

〈この項の構成〉

(1) 概要

PreparedStatementインタフェースでは,主に次の機能が提供されます。

注※

出力パラメタは指定できません(指定時の動作は不定です)。

また,PreparedStatementインタフェースはStatementインタフェースのサブインタフェースであるため,Statementインタフェースの機能をすべて継承します。

(2) メソッド

PreparedStatementインタフェースのメソッド一覧を次の表に示します。なお,表に記載されていないメソッドはサポートしていません。サポートしていないメソッドを指定すると,SQLExceptionを投入します。

表17‒28 PreparedStatementインタフェースのメソッド一覧

メソッド

提供ドライバ

機能

JDBC2.0

JDBC4.0

JDBC4.3

addBatch()

○

○

○

このPreparedStatementオブジェクトのバッチに,現在のパラメタセットを追加します。

clearParameters()

○

○

○

現在設定されているパラメタセットの値をすべてクリアします。

execute()

○

○

○

前処理済みのSQLを実行します。

execute(String sql)

○

○

○

指定されたSQL文を実行します。

executeQuery()

○

○

○

前処理済みの検索系SQLを実行し,その結果のResultSetオブジェクトを返します。

executeQuery(String sql)

○

○

○

指定された検索系SQLを実行し,その結果のResultSetオブジェクトを返します。

executeUpdate()

○

○

○

前処理済みの検索系以外のSQLを実行し,更新行数を返します。

executeUpdate(String sql)

○

○

○

指定された検索系以外のSQLを実行し,更新行数を返します。

getMetaData()

×

○

○

このPreparedStatementオブジェクトの実行時に返されるResultSetのメタ情報を表すResultSetMetaDataを返却します。

getParameterMetaData()

×

○

○

このPreparedStatementオブジェクト内のパラメタのメタ情報を表すParameterMetaDataを返却します。

setArray(int i,Array x)

○

○

○

Arrayオブジェクトを指定されたパラメタに設定します。

setAsciiStream(int parameterIndex, java.io.InputStream x, int length)

○

○

○

指定されたInputStreamオブジェクトの持つ値を?パラメタ値に設定します。

setBigDecimal(int parameterIndex, BigDecimal x)

○

○

○

指定されたBigDecimalオブジェクトを?パラメタ値に設定します。

setBinaryStream(int parameterIndex, java.io.InputStream x, int length)

○

○

○

指定されたInputStreamオブジェクトの持つ値を?パラメタ値に設定します。

setBlob(int parameterIndex, Blob x)

○

○

○

指定されたBlobオブジェクトの持つ値を?パラメタ値に設定します。

setBoolean(int parameterIndex, boolean x)

○

○

○

指定されたboolean値を?パラメタ値に設定します。

setByte(int parameterIndex, byte x)

○

○

○

指定されたbyte値を?パラメタ値に設定します。

setBytes(int parameterIndex, byte x[])

○

○

○

指定されたbyte配列を?パラメタ値に設定します。

setCharacterStream(int parameterIndex, Reader reader, int length)

○

○

○

指定されたReaderオブジェクトの持つ値を?パラメタ値に設定します。

setDate(int parameterIndex, java.sql.Date x)

○

○

○

指定されたjava.sql.Dateオブジェクトを?パラメタ値に設定します。

setDate(int parameterIndex, java.sql.Date x,Calendar cal)

○

○

○

ローカルタイムで指定されたjava.sql.Dateオブジェクトを,指定されたカレンダーのタイムゾーンの時間に変換し,?パラメタ値に設定します。

setDouble(int parameterIndex, double x)

○

○

○

指定されたdouble値を?パラメタ値に設定します。

setFloat(int parameterIndex, float x)

○

○

○

指定されたfloat値を?パラメタ値に設定します。

setInt(int parameterIndex, int x)

○

○

○

指定されたint値を?パラメタ値に設定します。

setLong(int parameterIndex, long x)

○

○

○

指定されたlong値を?パラメタ値に設定します。

setNull(int parameterIndex,int sqlType)

○

○

○

指定された?パラメタにNULL値を設定します。

setObject(int parameterIndex, Object x)

○

○

○

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

setObject(int parameterIndex, Object x, int targetSqlType)

○

○

○

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

setObject(int parameterIndex, Object x, int targetSqlType, int scale)

○

○

○

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

setShort(int parameterIndex, short x)

○

○

○

指定されたshort値を?パラメタ値に設定します。

setString(int parameterIndex, String x)

○

○

○

指定されたStringオブジェクトを?パラメタ値に設定します。

setTime(int parameterIndex, java.sql.Time x)

○

○

○

指定されたjava.sql.Timeオブジェクトを?パラメタ値に設定します。

setTime(int parameterIndex, java.sql.Time x,Calendar cal)

○

○

○

ローカルタイムで指定されたjava.sql.Timeオブジェクトを,指定されたカレンダーのタイムゾーンの時間に変換し,?パラメタ値に設定します。

setTimestamp(int parameterIndex, java.sql.Timestamp x)

○

○

○

指定されたjava.sql.Timestampオブジェクトを?パラメタ値に設定します。

setTimestamp(int parameterIndex, java.sql.Timestamp x,Calendar cal)

○

○

○

ローカルタイムで指定されたjava.sql.Timestampオブジェクトを,指定されたカレンダーのタイムゾーンの時間に変換し,?パラメタ値に設定します。

executeLargeUpdate()

×

×

〇

前処理済みの検索系以外のSQLを実行し,更新行数を返します。

(凡例)

○:提供されます。

×:提供されません。

(a) addBatch()

【機能】

このPreparedStatementオブジェクトのバッチに,現在のパラメタセットを追加します。

最大2,147,483,647個パラメタセットを登録できます。

【形式】
public synchronized void addBatch() throws SQLException
【引数】

なし。

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

  • すべての?パラメタに値がセットされていない場合

  • バッチの登録数が2,147,483,647個を超える場合

(b) clearParameters()

【機能】

現在設定されているパラメタセットの値をすべてクリアします。

【形式】
public synchronized void clearParameters() throws SQLException
【引数】

なし。

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

(c) execute()

【機能】

前処理済みのSQLを実行します。

実行結果のResultSetオブジェクトや更新行数を,PreparedStatement.getResultSet,PreparedStatement.getUpdateCountで取得できます。

【形式】
public synchronized boolean execute() throws SQLException
【引数】

なし。

【戻り値】

実行したSQLが検索系SQLの場合はtrue,そうでない場合はfalseを返します。

【機能詳細】

前処理済みのSQLを実行します。

ResultSetオブジェクトや更新行数を,PreparedStatement.getResultSet,PreparedStatement.getUpdateCountで取得できます。メソッド実行後のStatement.getResultSet,Statement.getUpdateCountの戻り値については,「execute(String sql)」を参照してください。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

  • 値を設定していない?パラメタがある場合

  • データベースアクセスエラーが発生した場合

(d) execute(String sql)

【機能】

指定されたSQL文を実行します。実行結果のResultSetオブジェクトや更新行数を,PreparedStatement.getResultSet,PreparedStatement.getUpdateCountで取得できます。

【形式】
public synchronized boolean execute(String sql) throws SQLException
【引数】
String sql:

実行するSQL文

【戻り値】

実行したSQLが検索系SQLの場合はtrue,そうでない場合はfalseを返します。

【機能詳細】

指定されたSQL文を実行します。ResultSetオブジェクトや更新行数を,PreparedStatement.getResultSet,PreparedStatement.getUpdateCountで取得できます。

このメソッド実行後のPreparedStatement.getResultSet,PreparedStatement.getUpdateCountの戻り値については,「実行したSQLとStatement.getResultSet及びStatement.getUpdateCountの戻り値の関係」を参照してください。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

  • 引数sqlにnull又は0長文字列を指定した場合

  • データベースアクセスエラーが発生した場合

  • HiRDB SQL Tuning Advisor用アクセスパス情報ファイルへの出力でエラーが発生した場合(JDBC4.0以降のときだけ)

(e) executeQuery()

【機能】

前処理済みの検索系SQLを実行し,その結果のResultSetオブジェクトを返します。

【形式】
public synchronized ResultSet executeQuery() throws SQLException
【引数】

なし。

【戻り値】

実行結果のResultSetオブジェクト

【機能詳細】
  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定していない場合

    前処理済みの検索系SQLを実行し,その結果のResultSetオブジェクトを返します。検索系以外のSQLを実行した場合,SQLExceptionを投入します。

  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合

    前処理済みのSQLを実行し,その結果のResultSetオブジェクトを返します。検索系以外のSQLを実行した場合,0列のResultSetオブジェクトを返します。

    また,Statement.getUpdateCountメソッドを使用して更新行数を取得できます。

    executeQueryメソッドの戻り値と,メソッド実行後に実行するStatement.getUpdateCountメソッドの戻り値については,「executeQuery(String sql)」を参照してください。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

  • 検索系以外のSQLを指定した場合(システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合を除く)

  • 値を設定していない?パラメタがある場合

  • データベースアクセスエラーが発生した場合

(f) executeQuery(String sql)

【機能】

指定された検索系SQLを実行し,その結果のResultSetオブジェクトを返します。

【形式】
public synchronized ResultSet executeQuery(String sql) throws SQLException
【引数】
String sql:

実行するSQL文

【戻り値】

実行結果のResultSetオブジェクト

【機能詳細】
  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定していない場合

    指定された検索系SQLを実行し,その結果のResultSetオブジェクトを返却します。検索結果のないSQL文(INSERT文など)の場合は,SQLExceptionを投入します。

  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合

    指定されたSQLを実行し,その結果のResultSetオブジェクトを返却します。検索系以外のSQLを実行した場合,0列のResultSetオブジェクトを返却します。また,Statement.getUpdateCountメソッドを使用して更新行数を取得できます。

    executeQueryメソッドの戻り値と,メソッド実行後に実行するStatement.getUpdateCountメソッドの戻り値については,「executeQuery(String sql)」を参照してください。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

  • 検索系以外のSQLを指定した場合(システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合を除く)

  • 引数sqlにnull又は0長文字列を指定した場合

  • データベースアクセスエラーが発生した場合

  • HiRDB SQL Tuning Advisor用アクセスパス情報ファイルへの出力でエラーが発生した場合(JDBC4.0以降のときだけ)

(g) executeUpdate()

【機能】

前処理済みの検索系以外のSQLを実行し,更新行数を返します。

【形式】
public synchronized int executeUpdate() throws SQLException
【引数】

なし。

【戻り値】

次の表に示します。

表17‒29 executeUpdateメソッドの戻り値

実行したSQLの種類

システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHK指定

TRUE以外

TRUE

検索系SQL

−

-1

検索系以外のSQL

INSERT,UPDATE,DELETE

更新行数

更新行数

その他

0

0

【機能詳細】
  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定していない場合

    前処理済みの検索系以外のSQLを実行し,更新行数を返します。

    検索系SQLを実行した場合,SQLExceptionを投入します。

  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合

    前処理済みのSQLを実行します。

    戻り値が-1の場合,Statement.getResultSetメソッドを使用してResultSetオブジェクトを取得できます。executeUpdateメソッド実行後に実行するStatement.getResultSetメソッドの戻り値については,「executeUpdate(String sql)」を参照してください。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • オブジェクトに対してclose()が既に発行されている場合

  • このオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

  • 検索系SQLを実行した場合(システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合を除く)

  • 値を設定していない?パラメタがある場合

  • データベースアクセスエラーが発生した場合

(h) executeUpdate(String sql)

【機能】

指定された検索系以外のSQLを実行し,更新行数を返します。

【形式】
public synchronized int executeUpdate(String sql) throws SQLException
【引数】
String sql:

実行するSQL文

【戻り値】

次の表に示します。

表17‒30 executeUpdateメソッドの戻り値

実行したSQLの種類

システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHK指定

TRUE以外

TRUE

検索系SQL

−

-1

検索系以外のSQL

INSERT,UPDATE,DELETE

更新行数

更新行数

その他

0

0

【機能詳細】
  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定していない場合

    指定された検索系以外のSQLを実行し,更新行数を返却します。

    検索結果を返却するSQL文(SELECT文)の場合は,SQLExceptionを投入します。

  • システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合

    指定されたSQLを実行します。

    戻り値が-1の場合,Statement.getResultSetメソッドを使用してResultSetオブジェクトを取得できます。executeUpdateメソッド実行後に実行するStatement.getResultSetメソッドの戻り値については,「executeUpdate(String sql)」を参照してください。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対して,close()が既に発行されている場合

  • 検索系SQLを指定した場合(システムプロパティHiRDB_for_Java_DAB_EXECUTESQL_NOCHKにTRUEを設定している場合を除く)

  • 引数sqlにnull又は0長文字列を指定した場合

  • データベースアクセスエラーが発生した場合

  • HiRDB SQL Tuning Advisor用アクセスパス情報ファイルへの出力でエラーが発生した場合(JDBC4.0以降のときだけ)

(i) getMetaData()

【機能】

このPreparedStatementオブジェクトの実行時に返されるResultSetのメタ情報を表すResultSetMetaDataを返却します。

【形式】
public synchronized ResultSetMetaData getMetaData() throws SQLException
【引数】

なし。

【戻り値】

次の表に示します。

表17‒31 getMetaDataメソッドの戻り値

前処理済みSQLの種類

getMetaDataメソッドの戻り値

検索系SQL

実行時に返されるResultSetのメタ情報を表すResultSetMetaData

上記以外

null

注

引数にSQL文を持つexecuteXXXメソッドを実行した場合,引数を持たないexecuteXXXメソッドを実行するまで,引数に指定されたSQL文に対応するメタ情報を返却します。

(例)

pstmt = Connection.prepareStatement(<SQL1>)
pstmt.getMetaData() ..........SQL1の結果セットのメタ情報を返却
pstmt.execute()
pstmt.getMetaData() ..........SQL1の結果セットのメタ情報を返却
pstmt.executeQuery(<SQL2>)
pstmt.getMetaData() ..........SQL2の結果セットのメタ情報を返却
pstmt.execute()
pstmt.getMetaData() ..........SQL1の結果セットのメタ情報を返却
【機能詳細】

このPreparedStatementオブジェクトの実行時に返されるResultSetのメタ情報を表すResultSetMetaDataを返却します。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

(j) getParameterMetaData()

【機能】

このPreparedStatementオブジェクト内のパラメタのメタ情報を表すParameterMetaDataを返却します。

【形式】
public ParameterMetaData getParameterMetaData() throws SQLException
【引数】

なし。

【戻り値】

このPreparedStatementオブジェクト内のパラメタのメタ情報を表すParameterMetaData

【機能詳細】

このPreparedStatementオブジェクト内のパラメタのメタ情報を表すParameterMetaDataを返却します。返却するParameterMetaDataは,Connection.prepareStatement()又はConnection.prepareCall()実行時点でサーバから取得したパラメタのメタ情報となります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

(k) setArray(int i,Array x)

【機能】

Arrayオブジェクトを指定されたパラメタに設定します。

【形式】
public void setArray(int i,Array x) throws SQLException
【引数】
int i:

?パラメタの番号。最初のパラメタは1,2番目のパラメタは2,…と指定します。

Array x:

?パラメタに設定するArrayオブジェクト

【戻り値】

なし。

【機能詳細】

Arrayオブジェクトを,指定されたパラメタ番号のパラメタに設定します。

ArrayオブジェクトのgetArray()で取得したObject配列のデータ型と,ArrayオブジェクトのgetBaseType()で取得したデータ型が対応していない場合は,SQLExceptionとなります。

ArrayオブジェクトのgetArray()で取得したObject配列のデータ型と,ArrayオブジェクトのgetBaseType()で取得したデータ型の対応を次に示します。

getBaseType()で取得したデータ型

getArray()で取得したObject配列のデータ型

java.sql.Types.SMALLINT

short[],java.lang.Short[]

java.sql.Types.INTEGER

int[],java.lang.Integer[]

java.sql.Types.REAL

float[],java.lang.Float[]

java.sql.Types.FLOAT

double[],java.lang.Double[]

java.sql.Types.Decimal

java.math.BigDecimal[]

java.sql.Types.CHAR

java.lang.String[]

java.sql.Types.VARCHAR

java.lang.String[]

java.sql.Types.DATE

java.sql.Date

java.sql.Types.TIME

java.sql.Time

java.sql.Types.TIMESTAMP

java.sql.Timestamp

引数i及び引数xと設定される値の関係を次に示します。

引数i

引数x

getArrayで取り出したObject配列の要素数

Object配列の各要素

HiRDBに設定される繰返し列の要素

存在する?パラメタ番号

!=null

0<要素数<=30000

すべての要素がnull

すべての要素がnullである繰返し列

上記以外

上記以外の繰返し列

要素数>30000

−

SQLException

0

−

要素数0の繰返し列

null

−

−

列全体がnull

存在するが,繰返し列ではない?パラメタ番号

−

−

−

SQLException

存在しない?パラメタ番号

SQLException

(凡例) −:該当しません。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 引数iに存在しない?パラメタの番号を指定した場合

  • 引数iで指定したパラメタ番号の列が,HiRDBの繰返し列ではない場合

  • 引数xに指定したArrayオブジェクトから取り出したObject配列のデータ型が,?パラメタの列のデータ型に変換できない場合

  • 引数xに指定したArrayオブジェクトから取り出したObject配列の長さが30000を超えている(配列要素数が30000を超えている)場合

(l) setAsciiStream(int parameterIndex, java.io.InputStream x, int length)

【機能】

指定されたInputStreamオブジェクトの持つ値を?パラメタ値に設定します。

【形式】
public synchronized void setAsciiStream(int parameterIndex, java.io.InputStream x, int length) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.io.InputStream x:

?パラメタに設定する値を持つInputStreamオブジェクト

int length:

設定するバイト数

【戻り値】

なし。

【機能詳細】

指定されたInputStreamオブジェクトの持つ値を?パラメタ値に設定します。

このメソッドは,xからの入力が終わった後でも,xに対してclose()メソッドを実行しません。

?パラメタのHiRDBのデータ型が[M|N][VAR]CHAR,BINARY,BLOB以外の場合は,SQLExceptionとなります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • lengthに0未満の値が指定された場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(m) setBigDecimal(int parameterIndex, BigDecimal x)

【機能】

指定されたBigDecimalオブジェクトを?パラメタ値に設定します。

【形式】
public synchronized void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

BigDecimal x:

?パラメタに設定するBigDecimalオブジェクト

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(n) setBinaryStream(int parameterIndex, java.io.InputStream x, int length)

【機能】

指定されたInputStreamオブジェクトの持つ値を?パラメタ値に設定します。

【形式】
public synchronized void setBinaryStream(int parameterIndex, java.io.InputStream x, int length) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.io.InputStream x:

?パラメタに設定する値を持つInputStreamオブジェクト

int length:

設定するバイト数

【戻り値】

なし。

【機能詳細】

指定されたInputStreamオブジェクトの持つ値を?パラメタ値に設定します。

このメソッドは,xからの入力が終わった後でも,xに対してclose()メソッドを実行しません。

?パラメタのHiRDBのデータ型がBINARY,BLOB以外の場合は,SQLExceptionとなります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • lengthに0未満の値が指定された場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(o) setBlob(int parameterIndex, Blob x)

【機能】

指定されたBlobオブジェクトの持つ値を?パラメタ値に設定します。

【形式】
public synchronized void setBlob(int parameterIndex, Blob x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

Blob x:

?パラメタに設定する値を持つBlobオブジェクト

【戻り値】

なし。

【機能詳細】

指定されたInputStreamオブジェクトの持つ値を?パラメタ値に設定します。

?パラメタのHiRDBのデータ型がBINARY,BLOB以外の場合は,SQLExceptionとなります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(p) setBoolean(int parameterIndex, boolean x)

【機能】

指定されたboolean値を?パラメタ値に設定します。

【形式】
public synchronized void setBoolean(int parameterIndex, boolean x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

boolean x:

?パラメタに設定する値

【戻り値】

なし。

【機能詳細】

指定されたboolean値を?パラメタ値に設定します。

parameterIndexで指定した?パラメタのHiRDBのデータ型がCHAR,MCHAR,NCHAR,VARCHAR,MVARCHAR,及びNVARHARの場合,?パラメタへの設定値はxがtrueのときは"true",falseのときは"false△"(△は半角スペース)となります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定した?パラメタがOUTパラメタである場合

(q) setByte(int parameterIndex, byte x)

【機能】

指定されたbyte値を?パラメタ値に設定します。

【形式】
public synchronized void setByte(int parameterIndex, byte x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

byte x:

?パラメタに設定する値

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定した?パラメタがOUTパラメタである場合

(r) setBytes(int parameterIndex, byte x[])

【機能】

指定されたbyte配列を?パラメタ値に設定します。

【形式】
public synchronized void setBytes(int parameterIndex, byte x[]) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

byte x[]:

?パラメタに設定する値を持つbyte配列

【戻り値】

なし。

【機能詳細】

このメソッドでは,byte配列のコピーをしないで,参照だけを保持します。そのため,executeXXXメソッドの実行前にbyte配列の値を変更した場合は,変更後の値が設定値となります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型(BINARY型及びBLOB型以外のデータ型)の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(s) setCharacterStream(int parameterIndex, Reader reader, int length)

【機能】

指定されたReaderオブジェクトの持つ値を?パラメタ値に設定します。

【形式】
public synchronized void setCharacterStream(int parameterIndex, 
Reader x, int length) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

Reader reader:

?パラメタに設定する値を持つReaderオブジェクト

int length:

文字数

【戻り値】

なし。

【機能詳細】

指定されたReaderオブジェクトの持つ値を?パラメタ値に設定します。

?パラメタのHiRDBのデータ型が[M|N][VAR]CHAR,BINARY,BLOB以外の場合は,SQLExceptionとなります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • lengthに0未満の値が指定された場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • エンコードに失敗した場合

  • 指定した?パラメタがOUTパラメタである場合

(t) setDate(int parameterIndex, java.sql.Date x)

【機能】

指定されたjava.sql.Dateオブジェクトを?パラメタ値に設定します。

【形式】
public synchronized void setDate(int parameterIndex, java.sql.Date x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.sql.Date x:

?パラメタに設定する値を持つjava.sql.Dateオブジェクト

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(u) setDate(int parameterIndex, java.sql.Date x,Calendar cal)

【機能】

ローカルタイムで指定されたjava.sql.Dateオブジェクトを,指定されたカレンダーのタイムゾーンの時間に変換し,?パラメタ値に設定します。

【形式】
public synchronized void setDate(int parameterIndex, java.sql.Date x,Calendar cal) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.sql.Date x:

?パラメタに設定する値を持つjava.sql.Dateオブジェクト

Calendar cal:

データベースに格納する値のタイムゾーンが設定されたカレンダー。nullが指定された場合,JavaVMのデフォルトのタイムゾーンのカレンダーが指定されたとみなされます。

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(v) setDouble(int parameterIndex, double x)

【機能】

指定されたdouble値を?パラメタ値に設定します。

【形式】
public synchronized void setDouble(int parameterIndex, double x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

double x:

?パラメタに設定する値

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(w) setFloat(int parameterIndex, float x)

【機能】

指定されたfloat値を?パラメタ値に設定します。

【形式】
public synchronized void setFloat(int parameterIndex, float x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

float x:

?パラメタに設定する値

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(x) setInt(int parameterIndex, int x)

【機能】

指定されたint値を?パラメタ値に設定します。

【形式】
public synchronized void setInt(int parameterIndex, int x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

int x:

?パラメタに設定する値

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(y) setLong(int parameterIndex, long x)

【機能】

指定されたlong値を?パラメタ値に設定します。

【形式】
public synchronized void setLong(int parameterIndex, long x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

long x:

?パラメタに設定する値

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(z) setNull(int parameterIndex,int sqlType)

【機能】

指定された?パラメタにNULL値を設定します。

引数sqlTypeはこのドライバでは無視します。

【形式】
public synchronized void setNull(int parameterIndex,int sqlType) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

int sqlType:

JDBCのSQLデータ型

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • 指定した?パラメタがOUTパラメタである場合

(aa) setObject(int parameterIndex, Object x)

【機能】

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

【形式】
public synchronized void setObject(int parameterIndex, Object x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

Object x:

?パラメタに設定する値を持つオブジェクト

【戻り値】

なし。

【機能詳細】

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

parameterIndexで指定した?パラメタの型がHiRDBのCHAR,MCHAR,NCHAR,VARCHAR,MVARCHAR,又はNVARHARで,xがBooleanオブジェクトの場合,?パラメタへの設定値はxがtrueのときは"true",falseのときは"false△"(△は半角スペース)となります。

xがbyte配列の場合,byte配列のコピーをしないで,参照だけを保持します。そのため,executeXXXメソッドの実行前にbyte配列の値を変更した場合は,変更後の値が設定値となります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(ab) setObject(int parameterIndex, Object x, int targetSqlType)

【機能】

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

【形式】
public synchronized void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

Object x:

?パラメタに設定する値を持つオブジェクト

int targetSqlType:

JDBCのSQLデータ型

【戻り値】

なし。

【機能詳細】

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

targetSqlTypeがjava.sql.Types.CHAR,java.sql.Types.VARCHAR,又はjava.sql.Types.LONGVARCHARで,xがBooleanオブジェクトの場合,?パラメタへの設定値はxがtrueのときは”1”,”0”になります。

なお,HiRDBデータ型であるNCHAR,NVARCHAR型の?パラメタへの設定値が”1”,”0”になる場合,SQLExceptionを投入します。

xがbyte配列の場合,byte配列のコピーをしないで,参照だけを保持します。そのため,executeXXXメソッドの実行前にbyte配列の値を変更した場合は,変更後の値が設定値となります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • targetSqlTypeが次のどれかの場合

    Types.ARRAY,Types.CLOB,Types.REF,Types.STRUCT

  • 指定した?パラメタがOUTパラメタである場合

(ac) setObject(int parameterIndex, Object x, int targetSqlType, int scale)

【機能】

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

【形式】
public synchronized void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

Object x:

?パラメタに設定する値を持つオブジェクト

int targetSqlType:

JDBCのSQLデータ型

int scale:

位取り(指定値は無視します)

【戻り値】

なし。

【機能詳細】

指定されたオブジェクトの持つ値を?パラメタ値に設定します。

targetSqlTypeがjava.sql.Types.CHAR,java.sql.Types.VARCHAR,又はjava.sql.Types.LONGVARCHARで,xがBooleanオブジェクトの場合,?パラメタへの設定値はxがtrueのときは”1”,”0”になります。

なお,HiRDBデータ型であるNCHAR,NVARCHAR型の?パラメタへの設定値が”1”,”0”になる場合,SQLExceptionを投入します。

xがbyte配列の場合,byte配列のコピーをしないで,参照だけを保持します。そのため,executeXXXメソッドの実行前にbyte配列の値を変更した場合は,変更後の値が設定値となります。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • targetSqlTypeが次のどれかの場合

    Types.ARRAY,Types.CLOB,Types.REF,Types.STRUCT

  • 指定した?パラメタがOUTパラメタである場合

(ad) setShort(int parameterIndex, short x)

【機能】

指定されたshort値を?パラメタ値に設定します。

【形式】
public synchronized void setShort(int parameterIndex, short x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

short x:

?パラメタに設定する値

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定した?パラメタがOUTパラメタである場合

(ae) setString(int parameterIndex, String x)

【機能】

指定されたStringオブジェクトを?パラメタ値に設定します。

【形式】
public synchronized void setString(int parameterIndex, String x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

String x:

?パラメタに設定する値を持つStringオブジェクト

【戻り値】

なし。

【機能詳細】

引数xで指定されたStringオブジェクトを?パラメタに設定します。

該当するインスタンスがCallableStatementで,かつ引数xの指定値が0長文字列の場合の,?パラメタ設定値を次の表に示します。

表17‒32 ?パラメタの設定値

?パラメタのデータ型

?パラメタの設定値

[M|N][VAR]CHAR

  • システムプロパティHiRDB_for_Java_DAB_CONVERT_NULLにTRUEを設定している場合

    null

  • 上記以外

    0長文字列

BINARY,又はBLOB

0長文字列

その他

null

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • エンコードに失敗した場合

  • 指定した?パラメタがOUTパラメタである場合

(af) setTime(int parameterIndex, java.sql.Time x)

【機能】

指定されたjava.sql.Timeオブジェクトを?パラメタ値に設定します。

【形式】
public synchronized void setTime(int parameterIndex, java.sql.Time x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.sql.Time x:

?パラメタに設定する値を持つjava.sql.Timeオブジェクト

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定した?パラメタがOUTパラメタである場合

(ag) setTime(int parameterIndex, java.sql.Time x,Calendar cal)

【機能】

ローカルタイムで指定されたjava.sql.Timeオブジェクトを,指定されたカレンダーのタイムゾーンの時間に変換し,?パラメタ値に設定します。

【形式】
public synchronized void setTime(int parameterIndex, java.sql.Time x,Calendar cal) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.sql.Time x:

?パラメタに設定する値を持つjava.sql.Timeオブジェクト

Calendar cal:

データベースに格納する値のタイムゾーンが設定されたカレンダー。nullが指定された場合,JavaVMのデフォルトのタイムゾーンのカレンダーが指定されたとします。

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定した?パラメタがOUTパラメタである場合

(ah) setTimestamp(int parameterIndex, java.sql.Timestamp x)

【機能】

指定されたjava.sql.Timestampオブジェクトを?パラメタ値に設定します。

【形式】
public synchronized void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.sql.Timestamp x:

?パラメタに設定する値を持つjava.sql.Timestampオブジェクト

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(ai) setTimestamp(int parameterIndex, java.sql.Timestamp x,Calendar cal)

【機能】

ローカルタイムで指定されたjava.sql.Timestampオブジェクトを,指定されたカレンダーのタイムゾーンの時間に変換し,?パラメタ値に設定します。

【形式】
public synchronized void setTimestamp(int parameterIndex, java.sql.Timestamp x,Calendar cal) throws SQLException
【引数】
int parameterIndex:

?パラメタの番号

java.sql.Timestamp x:

?パラメタに設定する値を持つjava.sql.Timestampオブジェクト

Calendar cal:

データベースに格納する値のタイムゾーンが設定されたカレンダー。nullが指定された場合,JavaVMのデフォルトのタイムゾーンのカレンダーが指定されたとします。

【戻り値】

なし。

【発生する例外】

次の場合,SQLExceptionを投入します。

  • PreparedStatementオブジェクトに対してclose()が既に発行されている場合

  • このPreparedStatementオブジェクトを生成したConnectionオブジェクトに対してclose()が既に発行されている場合

  • 存在しない?パラメタの番号を指定した場合

  • ?パラメタのHiRDBデータ型がこのメソッドでは設定できないデータ型の場合

  • 指定された値が列のデータ型の範囲外,又は変換できない形式の場合

  • 指定した?パラメタがOUTパラメタである場合

(aj) executeLargeUpdate()

【機能】

前処理済みの検索系以外のSQLを実行し,更新行数を返します。更新行数が2ギガバイトを超える場合はexecuteLargeUpdate()を使用してください。

【形式】
public synchronized long executeLargeUpdate() throws SQLException
【引数】

なし。

【戻り値】

「executeUpdate()」を参照してください。

【機能詳細】

「executeUpdate()」を参照してください。

【発生する例外】

「executeUpdate()」を参照してください。

(3) パッケージ名称及びクラス名称

このインタフェースを実装するパッケージ名称とクラス名称を次に示します。

パッケージ名称:JP.co.Hitachi.soft.HiRDB.JDBC

クラス名称:PrdbPreparedStatement

(4) 注意事項

PreparedStatementインタフェースはStatementインタフェースのサブインタフェースであるため,Statementインタフェースの注意事項はすべて該当します。

ここでは,それ以外のPreparedStatementインタフェースの注意事項を次に示します。

(a) ?パラメタの設定

  • setXXXメソッドによってマッピングできるかどうかについては,「?パラメタ設定時のマッピング」を参照してください。

  • setXXXメソッドに指定した列番号又は列名称が存在しない場合は,SQLExceptionを投入します。

  • setXXXメソッドに指定した値が,対応する?パラメタのデータ型が表現できる値の範囲を超える場合,オーバフローによってSQLExceptionを投入します。オーバフローが発生する可能性のあるsetXXXメソッドとHiRDBのデータ型の組み合わせについては,「オーバフローの扱い」を参照してください。

  • setXXXメソッドで指定した値は,次の操作のどれかを実行するまで有効です。

    • 該当するPreparedStatementオブジェクトに対して,clearParametersメソッドを実行する。

    • 該当するPreparedStatementオブジェクトに対して,setXXXメソッドを実行し,かつ設定対象の?パラメタは同じである。

    • 該当するPreparedStatementオブジェクトに対して,closeメソッドを実行する。

(b) コミット,ロールバックをわたるSQLの前処理結果保持

コミット,ロールバックをわたるSQLの前処理結果保持については,「HIRDB_CURSOR及びSTATEMENT_COMMIT_BEHAVIOR指定時の注意事項」を参照してください。

(c) HiRDBのDECIMAL型の?パラメタに対する値指定

HiRDBのDECIMAL型の?パラメタに対してsetXXXメソッドで値を指定する場合,?パラメタの精度及び位取りと値の精度及び位取りが一致していないときの動作を次に示します。

実際の精度よりも大きい場合:SQLExceptionを投入する

実際の精度よりも小さい場合:拡張する

実際の位取りよりも大きい場合:実際の位取りで切り捨てる

実際の位取りよりも小さい場合:0で補完し拡張する

(d) HiRDBのTIMESTAMP型の?パラメタに対する値指定

HiRDBのTIMESTAMP型の?パラメタに対してsetXXXメソッドで値を指定する場合,?パラメタの小数秒精度よりも値の小数秒精度が大きいときは,?パラメタの小数秒精度に合わせて,小数秒精度を切り捨てます。

(e) HiRDBのCHAR,VARCHAR,NCHAR,NVARCHAR,MCHAR,又はMVARCHAR型の?パラメタに対する値指定

HiRDBのCHAR,VARCHAR,NCHAR,NVARCHAR,MCHAR,又はMVARCHAR型の?パラメタに対してsetXXXメソッドで値を指定する場合,?パラメタの定義長よりも値を文字列表現にしたときの長さが大きいと,SQLExceptionを投入します。

(f) setObjectで指定できるオブジェクト

setObjectの引数xに指定できるオブジェクトは,次に示す型のオブジェクトです。

  • byte[]

  • java.lang.Byte

  • java.lang.Double

  • java.lang.Float

  • java.lang.Integer

  • java.lang.Long

  • java.lang.Short

  • java.lang.String

  • java.math.BigDecimal

  • java.sql.Blob

  • java.sql.Boolean

  • java.sql.Date

  • java.sql.Time

  • java.sql.Timestamp

  • java.sql.Array

(g) 1コネクション当たりのステートメントオブジェクト数の上限

1つのConnectionオブジェクトに対し,使用中のステートメントオブジェクト(Statement,PreparedStatement,及びCallableStatement)の数の合計が4096以上となった場合,SQLExceptionを投入します。詳細は「Statementインタフェース」の「注意事項」を参照してください。