第2章 アプリケーションの設計
2.4 データ型
2.4.2 Symfoware Server のデータ型
2.4.2.13 Symfoware ServerのROW_ID型
ServerのCHAR 型および VARCHAR型 VARCHAR
各国語 文字列型
NCHAR String
java.lang.Object
2.4.2.11 Symfoware ServerのNCHAR 型および NCHAR VARYING型 NCHAR VARYING
BLOB型 BLOB byte[]
java.sql.Blob java.lang.Object
2.4.2.12 Symfoware ServerのBLOB 型
SQL ROWID型
ROW_ID java.sql.RowId
java.lang.Object
2.4.2.13 Symfoware Serverの ROW_ID型
時間隔型 INTERVAL YEAR TO MONTH 未サポート
INTERVAL YEAR INTERVAL MONTH INTERVAL DAY TO HOUR INTERVAL DAY TO MINUTE INTERVAL DAY TO SECOND INTERVAL DAY
INTERVAL HOUR TO MINUTE INTERVAL HOUR TO SECOND INTERVAL HOUR
INTERVAL MINUTE TO SECOND INTERVAL MINUTE
INTERVAL SECOND
Javaアプリケーションでは、ResultSetMetaDataのgetColumnTypesメソッドでSymfoware ServerのSQLのデータ型を取得し たり、CallableStatementのregisterOutParameterメソッドでSymfoware ServerのSQLのデータ型を指定する場合がありま す。
SQLのデータ型を識別する値はjava.sql.Typesで規定されています。Symfoware ServerのSQLのデータ型に対応する java.sql.Typesの値を以下の表に示します。
表2.7 Symfoware ServerのSQLのデータ型と対応するjava.sql.Types
分類 Symfoware Server のSQLのデータ型 java.sql.Typesで規定されるデータ型
真数型 SMALLINT java.sql.Types.SMALLINT(推奨)
java.sql.Types.BIT java.sql.Types.TINYINT java.sql.Types.JAVA_OBJECT
分類 Symfoware Server のSQLのデータ
型 java.sql.Typesで規定されるデータ型
INTEGER java.sql.Types.INTEGER(推奨)
java.sql.Types.JAVA_OBJECT
NUMERIC java.sql.Types.NUMERIC(推奨)
java.sql.Types.JAVA_OBJECT java.sql.Types.BIGINT java.sql.Types.JAVA_OBJECT
DECIMAL java.sql.Types.DECIMAL(推奨)
java.sql.Types.JAVA_OBJECT java.sql.Types.BIGINT
概数型 REAL java.sql.Types.REAL(推奨)
java.sql.Types.FLOAT java.sql.Types.JAVA_OBJECT FLOAT(p) p=1~23
FLOAT(p) p=24~52 java.sql.Types.DOUBLE(推奨)
java.sql.Types.JAVA_OBJECT DOUBLE PRECISION
日時型 DATE java.sql.Types.DATE(推奨)
java.sql.Types.JAVA_OBJECT
TIME java.sql.Types.TIME(推奨)
java.sql.Types.JAVA_OBJECT
TIMESTAMP java.sql.Types.TIMESTAMP(推奨)
java.sql.Types.JAVA_OBJECT
文字列型 CHARACTER java.sql.Types.CHAR(推奨)
java.sql.Types.JAVA_OBJECT java.sql.Types.CLOB
java.sql.Types.DATALINK
VARCHAR java.sql.Types.VARCHAR(推奨)
java.sql.Types.LONGVARCHAR java.sql.Types.JAVA_OBJECT java.sql.Types.CLOB
java.sql.Types.DATALINK 各国語
文字列型
NCHAR java.sql.Types.CHAR(推奨)
java.sql.Types.JAVA_OBJECT
NCHAR VARYING java.sql.Types.VARCHAR(推奨)
java.sql.Types.LONGVARCHAR java.sql.Types.JAVA_OBJECT
BLOB型 BLOB java.sql.Types.BINARY(推奨)
java.sql.Types.VARBINARY java.sql.Types.LONGVARBINARY java.sql.Types.JAVA_OBJECT java.sql.Types.BLOB
SQL ROWID型
ROW_ID java.sql.Types.ROWID(推奨)
java.sql.Types.JAVA_OBJECT
時間隔型 INTERVAL YEAR TO MONTH 未サポート
INTERVAL YEAR INTERVAL MONTH INTERVAL DAY TO HOUR INTERVAL DAY TO MINUTE
分類 Symfoware Server のSQLのデータ
型 java.sql.Typesで規定されるデータ型
INTERVAL DAY TO SECOND INTERVAL DAY
INTERVAL HOUR TO MINUTE INTERVAL HOUR TO SECOND INTERVAL HOUR
INTERVAL MINUTE TO SECOND INTERVAL MINUTE
INTERVAL SECOND
注意
JDBCドライバとしては対応しているデータ型であってもSymfoware Serverが対応していない場合があります。
2.4.2 Symfoware Serverのデータ型
Symfoware Serverのデータ型について説明します。
2.4.2.1 Symfoware Server の SMALLINT 型
Javaのshort型とSymfoware ServerのSMALLINT型は一致し、共に-32768から32767までの16ビットの符号付き整数値を 表します。
Symfoware ServerのSMALLINT型への代入
Symfoware ServerのSMALLINT型へ代入可能なJavaのデータ型は以下のとおりです。
表2.8 Symfoware ServerのSMALLINT型へ代入可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 可能
boolean 可能
byte 可能
short 推奨
int 可能
long 可能
概数型 float 可能
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのSMALLINT型にデータを格納する場合、Javaのshort型の使用を推奨します。
・ JavaのString型のデータをSymfoware ServerのSMALLINT型へ代入する場合、格納される文字データは-32768から
32767までのASCIIコードで表現される文字データである必要があります。
・ Javaの真数型および概数型のデータをSymfoware ServerのSMALLINT型へ代入する場合、格納される数値データ
は-32768から32767までの16ビットの符号付き整数値で表現できるデータである必要があります。
Symfoware ServerのSMALLINT型からの取り出し
Symfoware ServerのSMALLINT型から取り出し可能なJavaのデータ型は以下のとおりです。
表2.9 Symfoware ServerのSMALLINT型から取り出し可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 可能
boolean 可能
byte 可能
short 推奨
int 可能
long 可能
概数型 float 可能
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのSMALLINT型のデータを取り出す場合、Javaのshort型の使用を推奨します。
・ Symfoware ServerのSMALLINT型のデータをJavaのString型へ取り出す場合、取り出すデータはASCIIコードで表
現される文字列に置き換わって取り出されます。
・ Symfoware ServerのSMALLINT型のデータをJavaの真数型および概数型へ取り出す場合、取り出す先のデータ型
で表現できる範囲の数値である必要があります。それ以外のデータを取り出すことはできません。
2.4.2.2 Symfoware Server の INTEGER 型
Javaのint型とSymfoware ServerのINTEGER型は一致し、共に-2147483648から2147483647までの32ビットの符号付き整 数値を表します。
Symfoware ServerのINTEGER型への代入
Symfoware ServerのINTEGER型へ代入可能なJavaのデータ型は以下のとおりです。
表2.10 Symfoware ServerのINTEGER型へ代入可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 可能
boolean 可能
byte 可能
short 可能
int 推奨
long 可能
概数型 float 可能
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのINTEGER型にデータを格納する場合、Javaのint型の使用を推奨します。
・ JavaのString型のデータをSymfoware ServerのINTEGER型へ代入する場合、格納される文字データは-2147483648
から2147483647までのASCIIコードで表現される文字データである必要があります。
・ Javaの真数型および概数型のデータをSymfoware ServerのINTEGER型へ代入する場合、格納される数値データ
は-2147483648から2147483647までの32ビットの符号付き整数値で表現できるデータである必要があります。
Symfoware ServerのINTEGER型からの取り出し
Symfoware ServerのINTEGER型から取り出し可能なJavaのデータ型は以下のとおりです。
表2.11 Symfoware ServerのINTEGER型から取り出し可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 可能
boolean 可能
byte 可能
short 可能
int 推奨
long 可能
概数型 float 可能
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのINTEGER型のデータを取り出す場合、Javaのint型の使用を推奨します。
・ Symfoware ServerのINTEGER型のデータをJavaのString型へ取り出す場合、取り出すデータはASCIIコードで表現
される文字列に置き換わって取り出されます。
・ Symfoware ServerのINTEGER型のデータをJavaの真数型および概数型へ取り出す場合、取り出す先のデータ型で
表現できる範囲の数値である必要があります。それ以外のデータを取り出すことはできません。
2.4.2.3 Symfoware Server の NUMERIC 型および DECIMAL 型
Javaのjava.math.BigDecimal型とSymfoware ServerのNUMERIC型およびDECIMAL型は一致し、共に精度と位取りを 持つ10進数を表します。
Symfoware ServerのNUMERIC型およびDECIMAL型への代入
Symfoware ServerのNUMERIC型およびDECIMAL型へ代入可能なJavaのデータ型は以下のとおりです。
表2.12 Symfoware ServerのNUMERIC型およびDECIMAL型へ代入可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 推奨
boolean 可能
byte 可能
short 可能
int 可能
long 可能
概数型 float 可能
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのNUMERIC型およびDECIMAL型にデータを格納する場合、Javaのjava.math.BigDecimal型の 使用を推奨します。
・ JavaのString型のデータをSymfoware ServerのNUMERIC型およびDECIMAL型へ代入する場合、格納される文字
データは数値を表現する文字データである必要があります。
・ Javaの真数型および概数型のデータをSymfoware ServerのNUMERIC型およびDECIMAL型へ代入する場合、格
納される数値データは固定精度の10進数で表現できるデータである必要があります。
Symfoware ServerのNUMERIC型およびDECIMAL型からの取り出し
Symfoware ServerのNUMERIC型およびDECIMAL型から取り出し可能なJavaのデータ型は以下のとおりです。
表2.13 Symfoware ServerのNUMERIC型およびDECIMAL型から取り出し可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 推奨
boolean 可能
byte 可能
short 可能
int 可能
long 可能
概数型 float 可能
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのNUMERIC型およびDECIMAL型のデータを取り出す場合、Javaのjava.math.BigDecimal型の
使用を推奨します。
・ Symfoware ServerのNUMERIC型およびDECIMAL型のデータをJavaのString型へ取り出す場合、取り出すデータは
ASCIIコードで表現される文字列に置き換わって取り出されます。
・ Symfoware ServerのNUMERIC型およびDECIMAL型のデータをJavaの真数型および概数型へ取り出す場合、取り
出す先のデータ型で表現できる範囲の数値である必要があります。それ以外のデータを取り出すことはできません。
2.4.2.4 Symfoware Server の REAL 型
Javaのfloat型とSymfoware ServerのREAL型は一致し、共に7桁の仮数部を持つ単精度の浮動小数点数を表します。
Symfoware ServerのREAL型への代入
Symfoware ServerのREAL型へ代入可能なJavaのデータ型は以下のとおりです。
表2.14 Symfoware ServerのREAL型へ代入可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 可能
boolean 可能
byte 可能
short 可能
int 可能
long 可能
概数型 float 推奨
分類 Javaのデータ型 レベル
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのREAL型にデータを格納する場合、Javaのfloat型の使用を推奨します。
・ JavaのString型のデータをSymfoware ServerのREAL型へ代入する場合、格納される文字データは7桁の仮数部を
持つ単精度のASCIIコードで表現される文字データである必要があります。
・ Javaの真数型および概数型のデータをSymfoware ServerのREAL型へ代入する場合、格納される数値データは7桁
の仮数部を持つ単精度の浮動小数点数値で表現できるデータである必要があります。
Symfoware ServerのREAL型からの取り出し
Symfoware ServerのREAL型から取り出し可能なJavaのデータ型は以下のとおりです。
表2.15 Symfoware ServerのREAL型から取り出し可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 可能
boolean 可能
byte 可能
short 可能
int 可能
long 可能
概数型 float 推奨
double 可能
Object型 java.lang.Object 可能
・ Symfoware ServerのREAL型のデータを取り出す場合、Javaのfloat型の使用を推奨します。
・ Symfoware ServerのREAL型のデータをJavaのString型へ取り出す場合、取り出すデータはASCIIコードで表現され る文字列に置き換わって取り出されます。
・ Symfoware ServerのREAL型のデータをJavaの真数型および概数型へ取り出す場合、取り出す先のデータ型で表
現できる範囲の数値である必要があります。それ以外のデータを取り出すことはできません。
2.4.2.5 Symfoware ServerのDOUBLE型
Javaのdouble型とSymfoware ServerのDOUBLE型は一致し、共に15桁の仮数部を持つ倍精度の浮動小数点数を表しま
す。
Symfoware ServerのDOUBLE型への代入
Symfoware ServerのDOUBLE型へ代入可能なJavaのデータ型は以下のとおりです。
表2.16 Symfoware ServerのDOUBLE型へ代入可能なJavaのデータ型
分類 Javaのデータ型 レベル
文字列型 String 可能
真数型 java.math.BigDecimal 可能
boolean 可能
byte 可能
short 可能