Hitachi

Hitachi Advanced Data Binder AP開発ガイド


7.6.3 オーバフローが発生したときの処理

ここでは,setXXXおよびgetXXXメソッド実行時のオーバフローの可能性について説明します。

〈この項の構成〉

(1) setXXXメソッド(setObjectメソッドを除く)実行時のオーバフローの可能性

setXXXメソッド実行時のオーバフローの可能性(setObjectメソッドを除く)を次の表に示します。

表7‒11 setXXXメソッド実行時のオーバフローの可能性(setObjectメソッドを除く)

実行するメソッド

HADBのデータ型

SMALLINT

INTEGER,BIGINT

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE※

TIME※

TIMESTAMP※

ROW

BINARY,VARBINARY

setByte

○

○

○

×

○

−

−

−

−

−

setShort

○

○

○

×

○

−

−

−

−

−

setInt

○

○

○

×

○

−

−

−

−

−

setLong

×

○

○

×

○

−

−

−

−

−

setFloat

×

×

○

×

○

−

−

−

−

−

setDouble

×

×

○

×

○

−

−

−

−

−

setBigDecimal

×

×

○

×

○

−

−

−

−

−

setBoolean

○

○

○

○

○

−

−

−

−

−

setString

×

×

○

×

○

×

○

×

−

○

setBytes

−

−

−

−

−

−

−

−

○

○

setDate

−

−

−

−

○

×

○

×

−

−

setTime

−

−

−

−

○

−

○

×

−

−

setTimestamp

−

−

−

−

○

×

○

×

−

−

setAsciiStream

−

−

−

−

○

−

−

−

−

○

setBinaryStream

−

−

−

−

○

−

−

−

−

○

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はHADBの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メソッド実行時のオーバフローの可能性を次の表に示します。

表7‒12 setObjectメソッド実行時のオーバフローの可能性

setObjectメソッドで指定するオブジェクトのデータ型

HADBのデータ型

SMALLINT

INTEGER,BIGINT

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE※

TIME※

TIMESTAMP※

ROW

BINARY,VARBINARY

Byte

○

○

○

×

○

−

−

−

−

−

Short

○

○

○

×

○

−

−

−

−

−

Integer

○

○

○

×

○

−

−

−

−

−

Long

×

○

○

×

○

−

−

−

−

−

Decimal

×

×

○

×

○

−

−

−

−

−

Float

×

×

○

×

○

−

−

−

−

−

Double

×

×

○

×

○

−

−

−

−

−

Boolean

○

○

○

○

○

−

−

−

−

−

String

×

×

○

×

○

×

○

×

−

−

Date

−

−

−

−

○

×

○

×

−

−

Time

−

−

−

−

○

−

○

−

−

−

Timestamp

−

−

−

−

○

×

○

×

−

−

byte[]

−

−

−

−

○

−

−

−

○

○

(凡例)

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

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

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

注※

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はHADBの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メソッド実行時のオーバフローの可能性(getObjectメソッドを除く)を次の表に示します。

表7‒13 getXXXメソッド実行時のオーバフローの可能性(getObjectメソッドを除く)

実行するメソッド

HADBのデータ型

SMALLINT

INTEGER,BIGINT

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE

TIME

TIMESTAMP

ROW

BINARY,VARBINARY

getByte

×

×

×

×

×

−

−

−

−

−

getShort

×

×

×

×

×

−

−

−

−

−

getInt

○

×

×

×

×

−

−

−

−

−

getLong

○

○

×

×

×

−

−

−

−

−

getFloat

○

○

○

○

○

−

−

−

−

−

getDouble

○

○

○

○

○

−

−

−

−

−

getBigDecimal

○

○

○

○

○

−

−

−

−

−

getBoolean

○

○

○

○

○

−

−

−

−

−

getString

○

○

○

○

○

○

○

○

−

○

getBytes

−

−

−

−

−

−

−

−

○

○

getDate

−

−

−

−

○

○

○

○

−

−

getTime

−

−

−

−

○

−

○

○

−

−

getTimestamp

−

−

−

−

○

○

○

○

−

−

getAsciiStream

−

−

−

−

○

−

−

−

−

○

getBinaryStream

−

−

−

−

○

−

−

−

−

○

getCharacterStream

−

−

−

−

○

−

−

−

−

○

getArray

−

−

−

−

○

−

−

−

−

○

(凡例)

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

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

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

(4) getObjectメソッド実行時のオーバフローの可能性

getObjectメソッド実行時のオーバフローの可能性を次の表に示します。

表7‒14 getObjectメソッド実行時のオーバフローの可能性

getObjectメソッドで取得するオブジェクトのデータ型

HADBのデータ型

SMALLINT

INTEGER,BIGINT

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE

TIME

TIMESTAMP

ROW

BINARY,VARBINARY

Byte

×

×

×

×

×

−

−

−

−

−

Short

×

×

×

×

×

−

−

−

−

−

Int

○

×

×

×

×

−

−

−

−

−

Long

○

○

×

×

×

−

−

−

−

−

Float

○

○

×

×

×

−

−

−

−

−

Double

○

○

○

×

×

−

−

−

−

−

BigDecimal

○

○

○

×

×

−

−

−

−

−

Boolean

○

○

○

○

○

−

−

−

−

−

String

○

○

○

○

○

○

○

○

−

○

Bytes

−

−

−

−

−

−

−

−

○

○

Date

−

−

−

−

○

○

○

○

−

−

Time

−

−

−

−

○

−

○

○

−

−

Timestamp

−

−

−

−

○

○

○

○

−

−

AsciiStream

−

−

−

−

○

−

−

−

−

○

BinaryStream

−

−

−

−

○

−

−

−

−

○

Object

○

○

○

○

○

○

○

○

○

○

CharacterStream

−

−

−

−

○

−

−

−

−

○

(凡例)

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

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

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