Hitachi

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


17.11.5 オーバフローの扱い

ここでは,setXXXメソッドを使用して値を設定する場合,及びgetXXXメソッドを使用して値を取得する場合にオーバフローするかどうかについて説明します。

〈この項の構成〉

(1) setXXXメソッド(setObjectメソッドを除く)

次の表に,setXXXメソッド使用時にオーバフローするかどうかを,HiRDBのデータ型ごとに示します。

表17‒111 setXXXメソッド使用時のオーバフロー有無(1/2)

setXXXメソッド

HiRDBのデータ型

SMALLINT

INTEGER

FLOAT

REAL

DECIMAL

文字列型

setByte

×

setShort

×

setInt

×

×

setLong

×

×

×

setFloat

×

×

×

setDouble

×

×

×

setBigDecimal

×

×

×

setBoolean

×

setString

×

×

×

setBytes

setDate

setTime

setTimestamp

setBlob

setBinaryStream

setAsciiStream

setArray

×

×

×

×

×

setCharacterStream

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

文字列型:CHAR型,MCHAR型,NCHAR型,VARCHAR型,MVARCHAR型,及びNVARCHAR型

表17‒112 setXXXメソッド使用時のオーバフロー有無(2/2)

setXXXメソッド

HiRDBのデータ型

DATE

TIME

TIMESTAMP

BINARY

BLOB

setByte

setShort

setInt

setLong

setFloat

setDouble

setBigDecimal

setBoolean

setString

×

×

setBytes

setDate

×

×

setTime

×

×

setTimestamp

×

×

setBlob

setBinaryStream

setAsciiStream

setArray

×

×

×

setCharacterStream

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

注※

java.sql.Date,java.sql.Time,又はjava.sql.TimestampクラスのgetTimeメソッドで取得した値が253,402,268,399,999より大きいか,又は-62,135,802,000,000より小さいオブジェクトである場合,オーバフローします。なお,getTimeメソッドは,1970年1月1日0時0分0秒(グリニッジ標準時)からのミリ秒数を返します。

253,402,268,399,999はHiRDBのTIMESTAMP型に格納できる最大値から,-62,135,802,000,000はjava.sql.Timestampクラスで表現できる最小値から,次に示すメソッドで取得できます。

253,402,268,399,999:

Timestamp.valueOf("9999-12-31 23:59:59.999999").getTime()

-62,135,802,000,000:

Timestamp.valueOf("0001-01-01 00:00:00.0").getTime()

(2) setObjectメソッド

次の表に,setObjectメソッド使用時にオーバフローするかどうかを,HiRDBのデータ型ごとに示します。

表17‒113 setObjectメソッド使用時のオーバフロー有無(1/2)

setObjectメソッド

HiRDBのデータ型

SMALLINT

INTEGER

FLOAT

REAL

DECIMAL

文字列型

Byte

×

Short

×

Integer

×

×

Long

×

×

×

Decimal

×

×

×

Float

×

×

×

Double

×

×

×

×

Boolean

×

String

×

×

×

Date

Time

Timestamp

byte[]

Blob

Array

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

文字列型:CHAR型,MCHAR型,NCHAR型,VARCHAR型,MVARCHAR型,及びNVARCHAR型

表17‒114 setObjectメソッド使用時のオーバフロー有無(2/2)

setObjectメソッド

HiRDBのデータ型

DATE

TIME

TIMESTAMP

BINARY

BLOB

Byte

Short

Integer

Long

Decimal

Float

Double

Boolean

String

×

×

Date

×

×

Time

×

Timestamp

×

×

byte[]

Blob

Array

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

注※

java.sql.Date,java.sql.Time,又はjava.sql.TimestampクラスのgetTimeメソッドで取得した値が253,402,268,399,999より大きいか,又は-62,135,802,000,000より小さいオブジェクトである場合,オーバフローします。なお,getTimeメソッドは,1970年1月1日0時0分0秒(グリニッジ標準時)からのミリ秒数を返します。

253,402,268,399,999はHiRDBのTIMESTAMP型に格納できる最大値から,-62,135,802,000,000はjava.sql.Timestampクラスで表現できる最小値から,次に示すメソッドで取得できます。

253,402,268,399,999:

Timestamp.valueOf("9999-12-31 23:59:59.999999").getTime()

-62,135,802,000,000:

Timestamp.valueOf("0001-01-01 00:00:00.0").getTime()

(3) getXXXメソッド(getObjectメソッドを除く)

次の表に,getXXXメソッド使用時にオーバフローするかどうかを,HiRDBのデータ型ごとに示します。

表17‒115 getXXXメソッド使用時のオーバフロー有無(1/2)

getXXXメソッド

HiRDBのデータ型

SMALLINT

INTEGER

FLOAT

REAL

DECIMAL

文字列型

getByte

×

×

×

×

×

×

getShort

×

×

×

×

×

getInt

×

×

×

×

getLong

×

×

×

×

getFloat

getDouble

getBigDecimal

getBoolean

getString

getBytes

getDate

getTime

getTimestamp

getAsciiStream

getBinaryStream

getCharacterStream

getArray

getBlob

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

文字列型:CHAR型,MCHAR型,NCHAR型,VARCHAR型,MVARCHAR型,及びNVARCHAR型

表17‒116 getXXXメソッド使用時のオーバフロー有無(2/2)

getXXXメソッド

HiRDBのデータ型

DATE

TIME

TIMESTAMP

BINARY

BLOB

getByte

getShort

getInt

getLong

getFloat

getDouble

getBigDecimal

getBoolean

getString

getBytes

getDate

getTime

getTimestamp

getAsciiStream

getBinaryStream

getCharacterStream

getArray

getBlob

(凡例)

○:値に関係なく,オーバフローしません。

−:この組み合わせでは使用できません。

(4) getObjectメソッド

次の表に,getObjectメソッド使用時にオーバフローするかどうかを,HiRDBのデータ型ごとに示します。

表17‒117 getObjectメソッド使用時のオーバフロー有無(1/2)

getObjectメソッド

HiRDBのデータ型

SMALLINT

INTEGER

FLOAT

REAL

DECIMAL

文字列型

Byte

×

×

×

×

×

×

Short

×

×

×

×

×

Int

×

×

×

×

Long

×

×

×

×

Float

×

×

×

Double

×

×

×

BigDecimal

×

×

×

Boolean

String

Bytes

Date

Time

Timestamp

AsciiStream

BinaryStream

Object

CharacterStream

Array

Blob

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

文字列型:CHAR型,MCHAR型,NCHAR型,VARCHAR型,MVARCHAR型,及びNVARCHAR型

表17‒118 getObjectメソッド使用時のオーバフロー有無(2/2)

getObjectメソッド

HiRDBのデータ型

DATE

TIME

TIMESTAMP

BINARY

BLOB

Byte

Short

Int

Long

Float

Double

BigDecimal

Boolean

String

Bytes

Date

Time

Timestamp

AsciiStream

BinaryStream

Object

CharacterStream

Array

Blob

(凡例)

○:値に関係なく,オーバフローしません。

−:この組み合わせでは使用できません。