17.11.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 |
− |
− |
− |
○ |
○ |
- (凡例)
-
○:値に関係なく,オーバフローしません。
−:この組み合わせでは使用できません。