DB_Table でサポートするデータ型は、次のとおりです。
2 バイト、4 バイトあるいは 8 バイトの 整数型 ('smallint'、'integer' および 'bigint')
固定小数点型 ('decimal')
単精度あるいは倍精度の 浮動小数点型 ('float' および 'double')
true/false のいずれかの値をとる 論理型 ('boolean')
固定長あるいは可変長の 文字列型 ('char' および 'varchar')
ISO "yyyy-mm-dd" 形式の 日付型 ('date')
ISO "hh:ii:ss" 形式の 時刻型 ('time')
ISO "yyyy-mm-dd hh:ii:ss" 形式の タイムスタンプ型 ('timestamp')
テキストや ASCII データを保持する キャラクタラージオブジェクト (CLOB) ('clob')
DB_Table がデータ型を抽象化しているので、 使用するデータベースにかかわらず同じ方式でデータを保存することができます。 場合によっては (特に日付や時刻、タイムスタンプなどでは) データベース固有のフォーマットをまったく無視して データを固定長の文字列で格納することもあります。
DB_Table はバイナリラージオブジェクト (BLOB) をサポートしていません。 しかし、キャラクタラージオブジェクト (CLOB) には対応しています。
整数型のカラムには 3 種類のサイズがあります。
'smallint' には (-2^15) から +(2^15) までの値、つまり -32778 から 32767 までの値を格納できます。
'integer' には (-2^31) から +(2^31) までの値、つまり -2,147,483,648 から +2,147,483,647 までの値を格納できます。
'bigint' には (-2^63) から +(2^63) までの値、つまり -9,223,372,036,854,775,808 から +9,223,372,036,854,775,807 までの値を格納できます。
例 39-1整数型のカラムの宣言
|
固定小数点のカラムを DB_Table で定義するには 'decimal' データ型を使用して 'size' (桁数) と 'scope' (小数点の位置) を指定します。 たとえば、小数点以下 2 桁までを保持する 5 桁の数値を定義するには次のようにします。
例 39-2固定小数点型のカラムの定義
|
上の例で指定したカラムは、標準 SQL では 5 桁の数値 (そのうち 2 桁が小数点以下) を保持するものとみなされます。したがって、この場合、 このカラムに格納できる値は -999.99 から 999.99 までとなります。 DB_Table は、使用する RDBMS が何であるかにかかわらずこの方式を適用します。
浮動小数点型のカラムを DB_Table で定義するには、'single' あるいは 'double' データ型を使用します。
'single' は単精度浮動小数点数です。
'double' は倍精度浮動小数点数です。
例 39-3浮動小数点型のカラムの宣言
|
論理値は true/false (1 あるいは 0) の値をとります。 指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
例 39-4論理型のカラムの宣言
|
論理型の値は、サイズ 1、スコープ 0 の固定小数点数値として保存されます。
そのカラムが必須ではないときは、第三の値として NULL 値が保存される可能性があります。 この場合、論理型の値は 2 通りではなく 3 通り (つまり 0|1 ではなく NULL|0|1) となります。
固定長の文字列型を定義するには 'char' データ型を使用し、 文字列のサイズを指定します。
可変長の文字列型を定義するには、'varchar' データ型を使用し、 文字列のカラムの最大サイズを指定します。
たとえば、64 文字の可変長文字列を定義するには次のようにします。
例 39-5可変長文字列型のカラムの宣言
|
'size' 要素は必須ですが、スコープは不要です。 サイズの最大値は 255 文字となります。
ISO 標準の日付型カラムを定義するには 'date' データ型を使用します。
例 39-6日付型のカラムの宣言
|
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
'date' の値は常に 10 文字の文字列で格納されます。 そのフォーマットは "yyyy-mm-dd" です。
ISO 標準の時刻型 (時・分・秒) を定義するには 'time' データ型を使用します。
例 39-7時刻型のカラムの宣言
|
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
'time' の値は常に 8 文字の文字列で格納されます。 そのフォーマットは "hh:ii:ss" です。
ISO 標準の日付・時刻型のカラムを定義するには 'timestamp' データ型を使用します。
例 39-8タイムスタンプ型のカラムの宣言
|
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
'timestamp' の値は常に 19 文字の文字列で格納されます。 そのフォーマットは "yyyy-mm-dd hh:ii:ss" (24 時間制) です。
注意: Unix のタイムスタンプを保存する場合は 'integer' を使用しましょう。 Unix のタイムスタンプは 4 バイトの整数値であり、 これは DB_Table の 'integer' データ型と完全に一致します。
例 39-9CLOB 型のカラムの宣言
|
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
'clob' の値の保存形式は、巨大なデータ用のネイティブなテキスト型 (例: LONGTEXT) あるいはネイティブな CLOB 型となります。