17.12.5 オーバフローの扱い
ここでは,setXXXメソッドを使用して値を設定する場合,及びgetXXXメソッドを使用して値を取得する場合にオーバフローするかどうかについて説明します。
- 〈この項の構成〉
(1) setXXXメソッド(setObjectメソッドを除く)
次の表に,setXXXメソッド使用時にオーバフローするかどうかを,HiRDBのデータ型ごとに示します。
|
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型
|
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のデータ型ごとに示します。
|
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型
|
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のデータ型ごとに示します。
|
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型
|
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のデータ型ごとに示します。
|
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型
|
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 |
− |
− |
− |
○ |
○ |
- (凡例)
-
○:値に関係なく,オーバフローしません。
−:この組み合わせでは使用できません。