スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

18.8.5 オーバフローの扱い

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

<この項の構成>
(1) setXXXメソッド(setObjectメソッドを除く)
(2) setObjectメソッド
(3) getXXXメソッド(getObjectメソッドを除く)
(4) getObjectメソッド

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

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

表18-73 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型

 

表18-74 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のデータ型ごとに示します。

表18-75 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型

 

表18-76 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のデータ型ごとに示します。

表18-77 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型

 

表18-78 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のデータ型ごとに示します。

表18-79 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型

 

表18-80 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 − − − ○ ○

(凡例)
○:値に関係なく,オーバフローしません。
−:この組み合わせでは使用できません。