17.11.1 SQLデータ型のマッピング
HiRDBのSQLデータ型とJDBCのSQLデータ型は,完全には一致しません。そのため,JDBCドライバでは,JDBCのSQLデータ型と,接続するHiRDBのSQLデータ型とのマッピング(変換)を実行します。マッピングできないSQLデータ型を使用してアクセスしようとすると,SQLExceptionを投入します。SQLデータ型のマッピングは,ResultSet,PreparedStatement,CallableStatementクラスのgetXXXメソッド及びsetXXXメソッドで実行します。なお,SQLデータ型と,getXXXメソッド及びsetXXXメソッドとのマッピング規則については,JDBC1.0規格又はJDBC2.0基本規格のドキュメントを参照してください。
HiRDBとJDBCのSQLデータ型の対応を次の表に示します。
HiRDBのSQLデータ型 |
JDBCのSQLデータ型 |
---|---|
INTEGER |
INTEGER |
SMALLINT |
SMALLINT |
DECIMAL,NUMERIC |
DECIMAL(,NUMERIC)※1 |
FLOAT,DOUBLE PRECISION |
FLOAT(,DOUBLE)※1 |
SMALLFLT,REAL |
REAL |
CHAR |
CHAR |
VARCHAR |
VARCHAR(,LONGVARCHAR)※1 |
NCHAR |
CHAR |
NVARCHAR |
VARCHAR(,LONGVARCHAR)※1 |
MCHAR |
CHAR |
MVARCHAR |
VARCHAR(,LONGVARCHAR)※1 |
DATE |
DATE |
TIME |
TIME |
BLOB |
LONGVARBINARY(,BINARY,VARBINARY,BLOB)※1 |
BINARY |
LONGVARBINARY(,BINARY,VARBINARY,BLOB)※1 |
TIMESTAMP |
TIMESTAMP |
BOOLEAN※2 |
BIT |
ANY※3 |
OTHER |
INTERVAL YEAR TO DAY |
Type4 JDBCドライバでは未サポート |
INTERVAL HOUR TO SECOND |
|
ROW |
- 注※1
-
()内のデータ型は,setNullメソッド,setObjectメソッド,又はregisterOutParameterメソッドの引数にJDBCのSQLデータ型を指定する場合にだけ対応します。HiRDBのSQLデータ型からJDBCのSQLデータ型へマッピングする際には対応しません。
- 注※2
-
DatabaseMetaDataのgetTypeInfoメソッドなどで生成される,ResultSetオブジェクトが持つBOOLEAN型の列を指します。
- 注※3
-
?パラメタにNULL述語を指定したSQL(? IS 〔NOT〕NULL)での,パラメタのデータ型としてだけ使用されます。