Hitachi

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


17.11.5 オーバフローの扱い

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

〈この項の構成〉

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

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

表17‒112 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‒113 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‒114 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‒115 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‒116 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‒117 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‒118 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‒119 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

−

−

−

○

○

(凡例)

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

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