対応RDBデータソース
対応RDB管理システム
UnitBaseのRDBの取り込みでは、次のRDBに対応しています。
- PostgreSQL:9.5 / 9.6 / 10 / 11 / 12
- Oracle Database:11g / 12c / 18c / 19c
- SQL Server:2012 / 2014 / 2016 / 2017 / 2019
- MySQL:5.6 / 5.7 / 8.0
- 一部のRDBについては、利用にあたりUnitBase管理者による設定が必要です(管理者ガイド:2.2.5. 外部データベースのデータ利用 )。
スキーマ名/テーブル名/ビュー名/カラム名の制限について
名前に以下の半角文字を含むスキーマ/テーブル/ビュー/カラムは、RDB内に存在する場合でもUnitBase上で表示されないため、利用することができません。
- '
- "
- `
- [
- ]
みなし型について
UnitBase では、取り込めるデータ型を「文字列」「数値」「日付時刻」「時刻」のいずれかの型とみなして扱います。
これを「みなし型」と呼びます。
なお、取り込めないデータ型はみなし型が「その他」となり、マッピングなどで利用できません。
各RDBのデータ型とみなし型
取り込めるデータ型とそのみなし型は、以下のとおりです。
記述のない型では、基本的にみなし型は「その他」として扱われます。
PostgreSQL
PostgreSQL のデータ型 | UnitBaseのみなし型 |
---|---|
CHARACTER | 文字列 |
CHARACTER VARYING | 文字列 |
TEXT | 文字列 |
BIT | 文字列 |
BOOLEAN | 文字列 |
SMALLINT | 数値 | INTEGER | 数値 |
BIGINT | 数値 |
NUMERIC | 数値 |
MONEY | 日付時刻 |
SMALLSERIAL | 数値 |
SERIAL | 数値 |
BIGSERIAL | 数値 |
REAL | 数値 |
BIGSERIAL | 数値 |
DOUBLE PRECISION | 数値 |
INTERVAL | 数値 |
DATE | 日付時刻型 |
TIMESTAMP | 日付時刻型(タイムゾーンあり) |
TIMESTAMP WITH TIME ZONE | 日付時刻型(タイムゾーンあり) |
TIME | 時刻型 |
TIME WITH TIME ZONE | 時刻型(タイムゾーンあり) |
Oracle
Oracle のデータ型 | UnitBaseのみなし型 |
---|---|
CHAR | 文字列 |
VARCHAR | 文字列 |
VARCHAR2 | 文字列 |
NCHAR | 文字列 |
NVARCHAR2 | 文字列 |
NUMBER | 数値 |
FLOAT | 数値 |
BINARY_FLOAT | 数値 |
BINARY_DOUBLE | 数値 |
DATE | 日付時刻 |
TIMESTAMP | 日付時刻 |
TIMESTAMP WITH TIME ZONE | 日付時刻(タイムゾーンあり) |
TIMESTAMP WITH LOCAL TIME ZONE | 日付時刻(タイムゾーンあり) |
SQL Server
SQL Server のデータ型 | UnitBaseのみなし型 |
---|---|
CHAR | 文字列 |
VARCHAR | 文字列 |
NCHAR | 文字列 |
NVARCHAR | 文字列 |
UNIQUEIDENTIFIER | 文字列 |
BIT | 文字列 |
TINYINT | 数値 |
SMALLINT | 数値 |
INT | 数値 |
BIGINT | 数値 |
SMALLMONEY | 数値 |
MONEY | 数値 |
NUMERIC | 数値 |
DECIMAL | 数値 |
FLOAT | 数値 |
REAL | 数値 |
DATE | 日付時刻 |
SMALLDATETIME | 日付時刻 |
DATETIME | 日付時刻 |
DATETIME2 | 日付時刻 |
DATETIMEOFFSET | 日付時刻(タイムゾーンあり) |
TIME | 時刻 |
MySQL
SQL Server のデータ型 | UnitBaseのみなし型 |
---|---|
CHAR | 文字列 |
VARCHAR | 文字列 |
TINYTEXT | 文字列 |
ENUM | 文字列 |
SET | 文字列 |
TINYINT | 数値型 |
SMALLINT | 数値 |
MEDIUMINT | 数値 |
INT | 数値 |
BIGINT | 数値 |
DECIMAL | 数値 |
DEC | 数値 |
NUMERIC | 数値 |
FLOAT | 数値 |
DOUBLE | 数値 |
REAL | 数値 |
BIT | 数値 |
BOOL | 数値 |
BOOLEAN | 数値 |
DATE | 日付時刻 |
DATETIME | 日付時刻 |
TIMESTAMP | 日付時刻 |
YEAR | 日付時刻 |
TIME | 時刻 |
各みなし型のデータは以下の形式で抽出されます。
RDBのみなし型 | 抽出される形式 |
---|---|
文字列 | RDBに格納された文字列 ※改行もそのまま抽出されます。 ※CHAR、NCHAR型では、文字数上限分まで半角スペースが末尾に追加されます。 |
数値 | 半角の数字 例) 1234567890.12 例) -987654321.9876 ※整数部分・小数部分の桁数は型定義に従います。 |
日付時刻 | YYYY/MM/DD<半角スペース>hh:mm:ss 例) 2020/10/06 09:02:05 例) 2020/10/06 13:42:55 ※時刻情報のない型では時刻部分は 00:00:00 として扱われます。 |
時刻 | hh:mm:ss 例) 09:02:05 例) 13:42:55 |
※NULL値はどのみなし型でも空文字として扱われます。
※クレンジングは上記データに対して適用されます。
- 各型について取得順に指定した場合の順序は、ORDER BY 句 で指定した場合の各RDBのデータ型仕様に従います。
- 各型について絞り込みに指定した場合の取得結果は、WHERE 句 で指定した場合の各RDBのデータ型仕様に従います。
- 日付時刻型について、タイムゾーンありの型とタイムゾーンなしの型では、以下のように動作が異なります。
- タイムゾーンあり
-
- フィールドに取り込まれるデータは、UnitBaseサーバーのタイムゾーンでの表示日時となります。
- 絞り込みで指定した日時は、UnitBaseサーバーのタイムゾーンでの表示日時とみなして絞り込みます。
- 差分抽出用更新日時カラムに指定した場合は、差分更新基準日時はRDBの取り込み詳細設定でのタイムゾーン指定によらず、絶対的な日時として判定されます。
- タイムゾーンなし
-
- フィールドに取り込まれるデータは、タイムゾーンによらずRDBに保存されたままの日時となります。
- 絞り込みで指定した日時は、タイムゾーンによらずそのままで絞り込みます。
- 差分抽出用更新日時カラムに指定した場合は、差分更新基準日時はRDBの取り込み詳細設定でのタイムゾーン指定での表示日時とみなして判定されます。
UnitBaseのフィールドの種類ごとのデータの書式
RDBから抽出されたデータをUnitBaseに取り込む際、UnitBaseのフィールドの種類によって取り込むことができるデータの書式が異なります。
データを正しく取り込むためには、クレンジングでのデータ加工が必要になる場合があります。
UnitBaseのフィールドの種類 | 取り込むことができるデータの書式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
文字列(1行) | 1行の文字列 | ||||||||
文字列(複数行) | 複数行の文字列 | ||||||||
数値 | 半角の数字
※半角のマイナス( - )や、半角の小数点( . )を使って記述された負数や小数も取り込むことができます。 ※整数部分が3桁ごとにカンマ( , )で区切られている数も取り込むことができます。 ※以下の場合、取り込みデータに記載した値を数値へ変換する処理で誤差が発生し、差分更新が失敗する可能性があります。 |
||||||||
メール | アットマーク( @ )で区切られた、メールアドレスとして適切な文字列
※複数のメールアドレスを入力できるように設定した場合は、メールアドレスごとにカンマ(,)で区切ります。 |
||||||||
URL | URLとラベルの間に改行を挟んだ文字列 [例]http://justsystems.com<改行>JUSTSYSTEM |
||||||||
ドロップダウン | 選択肢項目の文字列 | ||||||||
チェックボックス | true または false ※値が設定されていない場合は、false となります。 |
||||||||
選択リスト | 選択肢の項目ごとに改行を挟んだ文字列 [例]東京都<改行>埼玉県<改行>神奈川県 |
||||||||
日付時刻 | 半角文字で、次の形式で記述された日付や時刻 日付:YYYY/MM/DD または YY/MM/DD 時刻:hh:mm:ss 日付時刻:YYYY/MM/DD<半角スペース>hh:mm:ss ※日付を表す「MM」「DD」や、時刻を表す「hh」「mm」「ss」は、1桁で表現することもできます。 ※日付の「YY/MM/DD」形式の場合、「YY」は次のように解釈して取り込まれます。 ※時刻・日付時刻の「:ss」は省略できます。 |
||||||||
時間量 |
半角文字で、次の形式で記述された日時分秒 日時分秒:d-hh:mm:ss 日時分:d-hh:mm 日時:d-hh 時分秒:hh:mm:ss 時分:hh:mm 日:d 時:h 分:m 秒:s ※「d」「hh」「mm」「ss」は桁数は自由です。また、先頭に半角のマイナス( - )を付けることで、負数を表現できます。
|
||||||||
ユーザー | ログインIDの文字列
※ユーザー名の文字列は指定できません。 |
制限事項
RDB | 制限事項 |
---|---|
MySQL | みなし型が日付時刻型となるデータ型の 0000-01-01、0000-01-01 HH:mm:ss における 0000-01-01 部は 0001-01-01 となります。 |
MySQL | UnitBaseのタイムゾーンと、接続パラメーターまたは接続URLのタイムゾーンを同じタイムゾーンにしていない場合は差分更新基準日時が期待値と異なります。 |
PostgreSQL | INTERVAL型は秒単位の整数として扱われます。 例) 00:09:21 ⇒ 561 |
PostgreSQL | TIME、TIME WITH TIME ZONE、TIMETZ における 24:00:00 の値は 00:00:00 として取り込まれますが、取得順や絞り込みの処理は実際の値 24:00:00 として扱われるため、意図しない結果となる場合があります。 例1)00:00:01、12:00:00、13:00:00、24:00:00 を取得順昇順で取り込む場合、 結果は順に 00:00:01、12:00:00、13:00:00、00:00:00 となります。 例2)00:00:01、12:00:00、13:00:00、24:00:00 を 11:00:00 より後で絞り込んで取り込む場合、 結果は順に 12:00:00、13:00:00、00:00:00 となります。 |