Hitachi

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


17.10.39 setMaxBinarySize

〈この項の構成〉

(1) 機能

JDBC SQLタイプLONGVARBINARY型データ取得時のデータサイズの上限を設定します。

(2) 形式

public void setMaxBinarySize ( int size ) throws SQLException

(3) 引数

int size:

上限となるデータサイズです。0〜2,147,483,647の範囲で設定します。

0を指定した場合は,取得対象データの定義長を上限とします。

(4) 戻り値

なし。

(5) 機能詳細

JDBC SQLタイプLONGVARBINARY型データ取得時のデータサイズの上限を,バイト単位で設定します。

JDBC SQLタイプLONGVARBINARY型データを取得する際,JDBCドライバはデータを取得するまで実際のデータ長を認識できないため,定義長分のメモリを確保します。そのため,定義長にHiRDBのデータ型であるBINARY型,及びBLOB型の最大長である2,147,483,647バイトのように長大なサイズを指定した列の値を取得する場合は,その定義長である2,147,483,647バイトのメモリを確保しようとします。そのため,実行環境によってはメモリ不足が発生することがあります。

したがって,このメソッドで,実際に格納されているデータの最大長を指定してください。取得対象となるHiRDBのデータ型であるBINARY型,及びBLOB型データの定義長が,このメソッドで指定したサイズよりも大きい場合,取得データをこのメソッドで指定したサイズに切り捨てます。実際にデータを切り捨てた場合,ResultSetのnextメソッド実行時に,JDBCドライバはHiRDBサーバから警告を受け取ります。受け取った警告に対しては,setLONGVARBINARY_TruncErrorの指定値に従ってSQLExceptionの投入,SQLWarningの生成(又は無視)をします。

このメソッドで上限を設定していない場合は,取得対象データの定義長を上限とします。

(6) 発生する例外

負の値を指定した場合,SQLExceptionを投入します。

(7) 注意事項

setLONGVARBINARY_Accessメソッドの引数modeにLOCATORを指定している場合,このメソッドの指定値は無効です。実際のデータ長に基づいて領域を確保し,全データを取得します。