# データベースと項目タイプの対応

DataMagicが接続可能な各データベースとDataMagicの項目タイプの対応を以下の表に示します。表に示した組み合わせ以外で書き込む場合の動作は保証しません。

また、データベースから読み込んだ値がNULLだった場合にDataMagicの項目に設定される値（NULL値の扱い）も示します。

(1) SQLite3のデータ型と項目タイプの対応

表4.11 SQLite3のデータ型とDataMagicの項目タイプの対応

SQLite3のデータ型 | DataMagicの項目タイプ | NULL値の扱い | サイズ（*1）
--- | --- | --- | ---
BIGINT | B | 0 | 8
INTEGER | B | 0 | 8
FLOAT | F | 0 | 8
REAL | F | 0 | 8
BLOB | I | NULL文字 | -
TEXT | M | NULL文字 | -
その他 | M | NULL文字 | -

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。

(2) Oracleのデータ型と項目タイプの対応

表4.12 Oracleの列タイプとDataMagicの項目タイプの対応

Oracleの列タイプ | DataMagicの項目タイプ | NULL値の扱い | サイズ（*1）
--- | --- | --- | ---
DATE | D | NULL文字 | -
TIMESTAMP | D | NULL文字 | -
BFILE | I | NULL文字 | -
BLOB | I | NULL文字 | -
LONG_RAW | I | NULL文字 | -
RAW | I | NULL文字 | -
CHAR | M | NULL文字 | -
CLOB | M | NULL文字 | -
INTERVAL DAY TO SECOND | M | NULL文字 | -
INTERVAL YEAR TO MONTH | M | NULL文字 | -
LONG | M | NULL文字 | -
ROWID | M | NULL文字 | -
TIMESTAMP WITH LOCAL TIME ZONE | M | NULL文字 | -
TIMESTAMP WITH TIME ZONE | M | NULL文字 | -
UROWID | M | NULL文字 | -
VARCHAR2 | M | NULL文字 | -
NCHAR | W | NULL文字 | -
NCLOB | W | NULL文字 | -
NVARCHAR2 | W | NULL文字 | -
DECIMAL | Z | 0 | -
FLOAT | Z | 0 | -
INTEGER | Z | 0 | -
NUMBER | Z | 0 | -
NUMERIC | Z | 0 | -
REAL | Z | 0 | -
SMALLINT | Z | 0 | -

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。

注意

- LONG列の扱えるサイズは64KB未満になります。それを超えるLONG列の入出力は変換エラーとなります。

- BFILEタイプは入力でのみ指定できます。出力で指定した場合は変換エラーになります。

- DataMagicのDタイプが扱える精度は秒までです。TIMESTAMP型に格納されているデータの秒未満の部分（ミリ秒）は無視されます。

(3) DB2のデータ型と項目タイプの対応

表4.13 DB2のデータ型とDataMagicの項目タイプの対応

DB2のデータ型 | DataMagicの項目タイプ | NULL値の扱い | サイズ（*1）
--- | --- | --- | ---
BIGINT | B | 0 | 8
INTEGER | B | 0 | 4
SMALLINT | B | 0 | 2
DATE | D | NULL文字 | -
TIME | D | NULL文字 | -
TIMESTAMP | D | NULL文字 | -
DOUBLE | F | 0 | 8
REAL | F | 0 | 4
BLOB | I | NULL文字 | -
CHARACTER | M | NULL文字 | -
CLOB | M | NULL文字 | -
LONG VARCHAR | M | NULL文字 | -
VARCHAR | M | NULL文字 | -
DBCLOB | N | NULL文字 | -
GRAPHIC | N | NULL文字 | -
LONG VARGRAPHIC | N | NULL文字 | -
VARGRAPHIC | N | NULL文字 | -
DECIMAL | Z | 0 | -

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。

注意

- DATE、TIME、TIMESTAMP列への出力は、デリミタの指定がDB環境に依存します。出力の際は出力フォーマット指定をしてください。

- DataMagicのDタイプが扱える精度は秒までです。TIMESTAMP型に格納されているデータの秒未満の部分（ミリ秒）は無視されます。

- DB2のデータベースが使用する文字コード種（コードセット）がUTF-8の場合、DataMagicではGRAPHIC型を使用できません。

(4) SQL Serverのデータ型と項目タイプの対応

表4.14 SQL Serverのデータ型とDataMagicの項目タイプの対応（Windowsのみ）

SQL Serverのデータ型 | DataMagicの項目タイプ | NULL値の扱い | サイズ（*1）
--- | --- | --- | ---
bigint | B | 0 | 8
bit | B | 0 | 2
int | B | 0 | 4
smallint | B | 0 | 2
tinyint | B | 0 | 2
datetime | D | NULL文字 | -
smalldatetime | D | NULL文字 | -
float | F | 0 | 8
real | F | 0 | 4
binary | I | NULL文字 | -
image | I | NULL文字 | -
uniqueidentifier | I | NULL文字 | -
varbinary | I | NULL文字 | -
varbinary(MAX) | I | NULL文字 | -
char | M | NULL文字 | -
text | M | NULL文字 | -
varchar | M | NULL文字 | -
varchar(MAX) | M | NULL文字 | -
date | W | NULL文字 | -
datetime2 | W | NULL文字 | -
datetimeoffset | W | NULL文字 | -
nchar | W | NULL文字 | -
ntext | W | NULL文字 | -
nvarchar | W | NULL文字 | -
nvarchar(MAX) | W | NULL文字 | -
sql_variant | W | NULL文字 | -
time | W | NULL 文字 | -
XML | W | NULL文字 | -
decimal | Z | 0 | (*2)
money | Z | 0 | -
numeric | Z | 0 | (*2)
smallmoney | Z | 0 | -

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。
*2 | : | サイズにはDB テーブルの設定値に1 を加えた値が設定されます。また、小数点以下の桁数に1 以上を定義した場合、前述の値にさらに1 を加えた値が設定されます。

注意

- DataMagicのDタイプが扱える精度は秒までです。datetime型に格納されているデータの秒未満の部分（ミリ秒）は無視されます。

- DataMagicでは、tinyint型を2バイトのBタイプとして扱います。

- DataMagicでは、UDT（ユーザ定義）型をサポートしていませんが、ユーザ定義による型の別名はサポートしています。

  例）

  SSNがnvarchar(128)と定義されている場合、DataMagicでは「項目属性はnvarchar、サイズは128バイト」として扱います。

- bitは2バイトの数値として扱います。したがって入力設定の場合、0は false、それ以外はtrue、出力設定の場合、falseは0、trueは-1になります。

- DSN接続の際に、Microsoft ODBC Driver for SQL Serverを使用するとXMLデータ型が正しく変換されない場合があります。

  Windows標準のSQL Serverクライアントを使用してください。

(5) PostgreSQLのデータ型と項目タイプの対応

表4.15 PostgreSQLのデータ型とDataMagicの項目タイプの対応

PostgreSQLのデータ型 | DataMagicの項目タイプ | NULL値の扱い | サイズ（*1）
--- | --- | --- | ---
date | D | NULL文字 | -
double precision | F | 0 | 8
real | F | 0 | 4
bytea | I | NULL文字 | -
boolean | M | NULL文字 | 5
character | M | NULL文字 | (*2)
character varying | M | NULL文字 | -
text | M | NULL文字 | -
bigint | B | 0 | 8
integer | B | 0 | 4
smallint | B | 0 | 2
numeric | Z | 0 | -
money　(*3) | Z | 0 | -

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。
*2 | : | character型はDataMagicでは可変長として扱われますが、動作は以下のようにDBのcharacter型と同様となります。 DBに定義されている文字数に満たないデータが登録された場合、半角スペースでパディングされます。 DBに定義されている文字数を超過したデータを登録しようとした場合、エラーとなります。
*3 | : | 通貨記号、および桁区切り文字を含まない数字文字列として扱います。

注意

- 上記記載のないデータ型は利用できません。

- PostgreSQLサーバーのVer.9で、バイナリデータの扱いについて出力形式が変更になったため、bytea型のデータの取得結果がPostgreSQLサーバーのVer.8と異なる場合があります。PostgreSQLサーバーのVer.8と同様の結果を取得したい場合は、PostgreSQLサーバの設定を変更してください。詳細については、PostgreSQLのドキュメントを参照してください。

(6) ODBCのデータ型と項目タイプの対応

表4.16 ODBC（Access、FileMaker）のデータ型とDataMagicの項目タイプの対応

主要の型 | ODBCのデータ型 | データ範囲 | DataMagicの項目タイプ | NULL値の扱い | サイズ(*1)
--- | --- | --- | --- | --- | ---
数値 | SQL_TINYINT | -128～127 | B | 0 | 2
SQL_SMALLINT | 精度 5、小数点以下桁数 0、範囲 n の 符号付き数値 (–32,767 ≤ n ≤ 32,767) | B | 0 | 2
SQL_INTEGER | 精度 10、小数点以下桁数 0、範囲 n の 符号付き数値 (-2,147,483,647 ≤ n ≤ 2,147,483,647) | B | 0 | 4
SQL_BIGINT | 精度 10、小数点以下桁数 0、範囲 n の 符号付き数値 (–(263 – 1) ≤ n ≤ 263 – 1) | B | 0 | 8
SQL_REAL | 標準 C float 型と特性が同じ符号付き数値 -3.402823E+38～3.402823E+38 | F | 0 | 4
SQL_FLOAT | 標準 C double 型と特性が同じ符号付き数値 -1.79769313486231E+308 ～ 1.79769313486231E+308 | F | 0 | 8
SQL_DOUBLE | 標準 C double 型と特性が同じ符号付き数値 | F | 0 | 8
SQL_NUMERIC | 精度 p および小数点以下桁数 s の 符号付きの真数値 (1 ≤ p ≤ 15; 0 ≤ s ≤ p)Z(数字文字列) | Z | 0 | －
SQL_DECIMAL | 精度 p および小数点以下桁数 s の符号付き数値 (1 ≤ p ≤ 32; 0 ≤ s ≤ p)Z(数字文字列) | Z | 0 | －
バイナリ型 | SQL_BIT | 論理値 0,1 | I | NULL文字 | 1
SQL_BINARY | 固定長のバイナリデータ | I | NULL文字 | －
SQL_VARBINARY | 可変長バイナリデータ | I | NULL文字 | －
SQL_LONGVARBINARY | 可変長のバイナリ形式のデータ | I | NULL文字 | －
文字列型 | SQL_CHAR | 固定長 n の文字列 (1 ≤ n ≤ 32,767) | M | NULL文字 | －
SQL_VARCHAR | 可変長 n の文字列 (1 ≤ n ≤ 32,767) | M | NULL文字 | －
SQL_LONGVARCHAR | 可変長 n の文字列 (1 ≤ n ≤ 32,767) | M | NULL文字 | －
SQL_WCHAR | 固定長各国文字（Unicode） | W | NULL文字 | －
SQL_WVARCHAR | 可変長各国文字（Unicode） | W | NULL文字 | －
SQL_WLONGVARCHAR | 可変長各国文字（Unicode） | W | NULL文字 | －
日付・ 時刻型 | SQL_TYPE_DATE またはSQL_DATE | 「YYYYMMDD」 | D | NULL文字 | －
SQL_TYPE_TIME またはSQL_TIME | 「YYYYMMDDHHMiSS」 | D | NULL文字 | －
SQL_TYPE_TIMESTAMP またはSQL_TIMESTAMP | 「YYYYMMDD HHMiSS9999999」 | D | NULL文字 | －
日付期間型 | SQL_INTERVAL_MONTH | 期間リテラル 月間隔 | Z | 0 | －
SQL_INTERVAL_YEAR | 年間隔 | Z | 0 | －
SQL_INTERVAL_DAY | 日間隔 | Z | 0 | －
SQL_INTERVAL_HOUR | 時間隔 | Z | 0 | －
SQL_INTERVAL_MINUTE | 分間隔 | Z | 0 | －
SQL_INTERVAL_SECOND | 秒間隔 | Z | 0 | －
SQL_INTERVAL_YEAR_TO_MONTH | 2値を持つため使用不可 | 使用不可
SQL_INTERVAL_DAY_TO_HOUR
SQL_INTERVAL_DAY_TO_MINUTE
SQL_INTERVAL_DAY_TO_SECOND
SQL_INTERVAL_HOUR_TO_MINUTE
SQL_INTERVAL_HOUR_TO_SECOND
SQL_INTERVAL_MINUTE_TO_SECOND
その他 | SQL_GUID | グローバルユニークID | I | NULL文字 | －

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。

注意

DataMagicが扱える精度は秒までです。データの秒未満の部分（ミリ秒）は無視されます。

表4.17 Redshiftのデータ型とDataMagicの項目タイプの対応

主要の型 | Redshiftのデータ型 | データ範囲 | DataMagicの項目タイプ | NULL値の扱い | サイズ(*1)
--- | --- | --- | --- | --- | ---
数値 | SMALLINT | 符号付き 2 バイト整数 | B | 0 | 2
INTEGER | 符号付き 4バイト整数 | B | 0 | 4
BIGINT | 符号付き 8バイト整数 | B | 0 | 8
REAL | 単精度浮動小数点数 | F | 0 | 4
DOUBLE PRECISION | 倍精度浮動小数点数 | F | 0 | 8
DECIMAL | 精度の選択が可能な真数 | Z | 0 | －
文字列型 | CHAR | 固定長のキャラクタ文字列 | M | NULL文字 | －
VARCHAR | ユーザによって定義された制限を持つ可変長キャラクタ文字列 | M | NULL文字 | －
日付・ 時刻型 | DATE | カレンダー日付 (年、月、日) | D | NULL文字 | 10
TIMESTAMP | 日付と時刻 (タイムゾーンなし) | D | NULL文字 | －
TIMESTAMPTZ | 日付と時刻 (タイムゾーンあり) | D | NULL文字 | －
TIME | 時刻 | M | NULL文字 (*2) | 8
TIMETZ | 時刻 (タイムゾーン付き) | 使用不可
その他 | BOOLEAN | 論理ブール演算型 (true/false) (*3) | M (*3) | NULL文字 | 5 (*3)
GEOMETRY | 空間データ | 使用不可
GEOGRAPHY | 空間データ | 使用不可
HLLSKETCH | HyperLogLog スケッチで使用するタイプ | 使用不可
SUPER | ARRAY や STRUCTS などの複合型が含まれる Amazon Redshift のすべてのスカラー型を包含するスーパーセットデータ型 | 使用不可
VARBYTE | 可変長バイナリ値 | 使用不可

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。
*2 | : | BULK INSERT使用時はデータ型TIMEの項目にNULL値を挿入できません。
*3 | : | BULK INSERT使用時は以下のように入力してください。 設定値にtrueを設定する場合は「1」、falseの場合は「0」 DataMagicの項目タイプに「B」 サイズに「2」

注意

DataMagicが扱える精度は秒までです。データの秒未満の部分（ミリ秒）は無視されます。

表4.18 Snowflakeのデータ型とDataMagicの項目タイプの対応

主要の型 | Snowflakeの データ型 | データ範囲 | DataMagicの項目タイプ | NULL値の扱い | サイズ(*1)
--- | --- | --- | --- | --- | ---
数値 | NUMBER DECIMAL DEC NUMERIC | オプションの精度とスケールを使用した、最大38桁の数字 デフォルトの精度とスケールは (38, 0) | Z | 0 | －
TINYINT BYTEINT SMALLINT INT INTEGER BIGINT | NUMBER(38, 0)と同義 | Z | 0 | －
FLOAT FLOAT4 FLOAT8 DOUBLE DOUBLE PRECISION REAL | 倍精度（64ビット） IEEE 754浮動小数点数 | F | 0 | 8
文字列型 | VARCHAR STRING TEXT NVARCHAR NVARCHAR2 CHAR VARYING NCHAR VARYING | ユーザによって定義された制限を持つ、UTF-8の可変長キャラクタ文字列 デフォルト（および最大）は、16,777,216バイト | M | NULL文字 | －(*2)
CHAR CHARACTER NCHAR | デフォルトの長さが VARCHAR(1)であることを除き、 VARCHAR と同義 | M | NULL文字 | －(*2)
バイナリ型 | BINARY VARBINARY（*3） | Unicode文字の概念がないバイナリ文字列 最大長は8 MB （8,388,608バイト） | I | NULL文字 | －
論理 データ型 | BOOLEAN | 論理ブール演算型 | I（*4, *5, *6） | NULL文字 | 1
日付・ 時刻型 (*7) | DATE | カレンダー日付（年、月、日） | M | NULL文字 | 10
DATETIME TIMESTAMP TIMESTAMP_NTZ | 日付と時刻（タイムゾーンなし） | M | NULL文字 | 35
TIME | 時刻 | M | NULL文字 | 18
TIMESTAMP_LTZ | 日付と時刻（ローカルタイムゾーンあり） | M | NULL文字 | 35
TIMESTAMP_TZ | 日付と時刻（タイムゾーンあり） | M | NULL文字 | 35
半構造化データ型 | VARIANT | OBJECTやARRAYを含む半構造体データ型（最大サイズ 16MB） | 特定条件下でのみ使用可（*8）
OBJECT | キー（空でない文字列）とVARIANT型の値のペアのコレクション | 特定条件下でのみ使用可（*8）
ARRAY | VARIANT型の値で構成される配列 | 特定条件下でのみ使用可（*8）
地理空間データ型 | GEOGRAPHY | 地理空間データ | 使用不可
GEOMETRY | 地理空間データ | 使用不可

*1 | : | サイズ列の-（ハイフン）は可変長またはDBテーブルの設定値となります。
*2 | : | Snowflakeでは文字列型宣言時、VARCHAR(N)等で「N」の部分に指定する数値は最大文字数となります。DataMagicのサイズはバイト数となるため、「DBテーブル情報詳細」画面での「項目の取り込み」を実行した場合、以下の理由によりサイズはSnowflakeで指定した文字数の4倍となります。 Snowflakeの文字列データ型ではUnicode UTF-8文字を格納 Unicode UTF-8文字は、1文字あたり最大4バイト
*3 | : | SnowflakeではVARBINARY型はBINARY型と同義語のため、「DBテーブル情報詳細」画面の「項目の取り込み」で項目を取り込んだ場合、「固定長」となります。
*4 | : | BULK INSERTは、項目タイプ“M”、“I”の双方に対応しています。詳細については表および注釈の記載に従ってください。
*5 | : | 文字列の値をINSERTする場合は、出力設定の「DBテーブル情報詳細」の項目タイプに“M”、サイズに“5”を設定してください。TRUE、FALSEに変換される文字列は以下のとおりです。 TRUEに変換される文字列：true、t、yes、y、on、1 FALSEに変換される文字列：false、f、no、n、off、0 注意 大文字と小文字は区別しません。他のテキスト文字列はブール値に変換できません。 出力設定の「入力データサイズが0バイトの場合の扱い」の「文字タイプ」を“NULL”に設定している場合は、空文字をNULLに変換します。
*6 | : | BOOLEAN型の値を数字文字列に変換して出力したい場合は、ITOM関数をご利用ください。ITOM関数についてはリファレンスマニュアルの「付録A 関数」をご確認ください。なお、NULL値はITOM関数で0になり偽と同値となりますので、ご注意ください。
*7 | : | 日付演算および演算結果が日付になる関数を使用した結果をSnowflakeのDBに出力する場合は、出力項目の日付フォーマットを“YYYY-MM-DD”に設定してください。DataMagicでは日付形式のデフォルトフォーマットを“YYYY/MM/DD”としていますが、Snowflakeではこの日付形式が無効のため、正しいフォーマットを設定しないとデータ加工がエラーになります。
*8 | : | 使用条件の詳細については「Snowflakeの半構造化データ型の利用条件」をご確認ください。

注意

- DataMagicのDタイプが扱える精度は秒までです。「日付・時刻型」のデータをDタイプに変換した場合、秒未満の部分（ミリ秒）は無視されます。

- 注釈*6に記載のとおり、Dタイプの標準フォーマットは“YYYY/MM/DD”形式です。Snowflakeの日付形式ではこのフォーマットのデータを入力できない可能性がありますので、Snowflakeの仕様に従ってDataMagicが出力する日付フォーマットを設定してください。