17.11.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を指定している場合,このメソッドの指定値は無効です。実際のデータ長に基づいて領域を確保し,全データを取得します。