このページでは、カスタマイズされたフィールドを使用してソース値とデータ型を特定の BSON データ型に変換する結果を示す例について説明します。
動作
移行ジョブのエラーにより、影響を受けるフィールドに
BsonNullの値が生じます。 フィールドの null 処理戦略は、この動作に影響を与えません。移行ジョブは、移行ジョブの作成時に定義したしきい値に達しない限り、エラーとともに続行されます。
計算フィールド と カスタマイズIDフィールド を定義する場合、 Relational Migrator はdefault の初期データ型を表示します。移行ジョブ を実行すると、 Relational Migrator はこのデータ型を更新します。
整数
次の例では、 Integerデータ型を使用して値100に対してデータ型のカスタマイズを適用した結果を示しています。
変換タイプ | 変換値 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ブール値
次の例では、 Booleanデータ型を使用して値trueに対してデータ型のカスタマイズを適用した結果を示しています。
変換タイプ | 変換値 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long
次の例では、 Longデータ型を使用して値1233140483647に対してデータ型のカスタマイズを適用した結果を示しています。
変換タイプ | 変換値 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
小数点
次の例では、 Decimalデータ型を使用して値26.55に対してデータ型のカスタマイズを適用した結果を示しています。
変換タイプ | 変換値 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
文字列
次の例では、 Stringデータ型を使用して値"Hello"に対してデータ型のカスタマイズを適用した結果を示しています。
変換タイプ | 変換値 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
次の例では、 Stringデータ型を使用して値"true"に対してデータ型のカスタマイズを適用した結果を示しています。
変換タイプ | 変換値 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Oracle TIMEスタンプ
Oracle TIMESTAMP(0-9) 列は次のBSON型オプションをサポートしています。この例では、ソース値 2025-01-01 12:34:56.123456789 と TIMESTAMP(9)データ型を使用しています。
BSON 型 | 動作 | 出力例 |
|---|---|---|
| をミリ秒の精度で切り捨てます。 |
|
| string として完全に ミリ秒未満の精度を保持します。 |
|
| Unix エポックからのミリ秒を Int64 として保存します。 |
|
| Unix エポックからのマイクロ秒を Int64 として保存します。 |
|
| Unix エポックからのナノ秒を Int64 として保存します。 |
|
Oracle タイムゾーン付きのOracle TIMEスタンプ
Oracle TIMESTAMP WITH TIME ZONE 列は次のBSON型オプションをサポートしています。この例では、ソース値 2025-01-01 12:34:00.000 -05:00 が使用されています。
注意
1.15.4 より前のリリースでは、UTC にシフトすることなくローカルタイムを保存した TIMESTAMP WITH TIME ZONE 列で Date を選択する。更新された Date (UTC) オプションは、元のタイムゾーンオフセットを使用してタイムスタンプを UTC にシフトします。
BSON 型 | 動作 | 出力例 |
|---|---|---|
| タイムゾーンオフセットを含む完全なタイムスタンプを string として保存します。 |
|
| 元のタイムゾーンオフセットを使用して、タイムスタンプを UTC にシフトします。 |
|
| タイムゾーンオフセットを無視して、ローカル ウォール クロックの時間を UTC で保存します。 |
|
| 2 つのサブフィールドを作成します: |
|
| UTC に相当する時間からのミリ秒を Int64 として保存します。 |
|
| UTC に相当する時間からのマイクロ秒を Int64 として保存します。 |
|
| UTC に相当する時間からのナノ秒を Int64 として保存します。 |
|
Oracle NUMBER
Oracle NUMBER 列は次のBSON型オプションをサポートしています。デフォルトのBSON型は、列の増やす(s)と整数精度(p - s)によって異なります。
s > 0:Decimal(Decimal128)s <= 0および(p - s) < 10:Integer(BsonInt32)s <= 0および10 <= (p - s) < 19:Long(BsonInt64)s <= 0および(p - s) >= 19:Decimal(Decimal128)
この例では、ソース値 123456789 が使用されています。
BSON 型 | 動作 | 出力例 |
|---|---|---|
| 0 を false として扱い、ゼロ以外の数値を true として扱います。 |
|
| NUMBER を UNIX エポック以降のミリ秒と解釈します(1970-01-01T00:00:00Z)。値が大きいとオーバーフローして無効な日付が発生する可能性があります。 |
|
| BSON Decimal128 にマップされます。34 有効桁数を超える値は精度が失われる可能性があります。 |
|
| BSON Double(64ビット浮動点)に変換します。IEEE 754 の丸めにより、大きい値または精度の高い値では精度が失われる可能性があります。 |
|
| BSON Int32 にマップされます。Int32 の範囲を超える値はエラーになります。 |
|
| BSON Int64 にマップされます。Int64 の範囲を超える値はエラーになります。 |
|
| すべての数字を string として保持します。完全な数値忠実度が必要な場合は、 を使用します。 |
|
小数128の精度
ソース値が 34 有効桁数を超えると、Decimal マッピングは精度を失う可能性があります。次の例では、ソース値 12345678901234567890123456789012345678(有効桁数 38)を使用しています。
BSON 型 | 動作 | 出力例 |
|---|---|---|
| 34 有効桁数を超える値は精度が失われる可能性があります。 |
|
| すべての数字を string として保持します。完全な数値忠実度が必要な場合は、 を使用します。 |
|
Oracleタイプ
Relational Migrator は、 Oracle XMLTYPE 列をBSON String にマッピングし、XMLドキュメントをstring 値として保存します。
注意
XMLTYPE 列を移行するには、xdb.jar Oracle JDBC ドライバーファイルが使用可能であることを確認します。