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

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文字

4

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

Z

0

-

*1

:

サイズ列の-(ハイフン)は可変長またはDBテーブルの設定値となります。

*2

:

character型はDataMagicでは可変長として扱われますが、動作は以下のようにDBのcharacter型と同様となります。

  • DBに定義されている文字数に満たないデータが登録された場合、半角スペースでパディングされます。

  • DBに定義されている文字数を超過したデータを登録しようとした場合、エラーとなります。

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

  • 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が出力する日付フォーマットを設定してください。