本页概述的示例显示了使用自定义字段将源值和数据类型转换为特定 BSON 数据类型的结果。
行为
整型
以下示例显示了对具有Integer数据类型的值100应用数据类型自定义的结果。
转换类型 | 转化价值 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
布尔
以下示例显示了对具有Boolean数据类型的值true应用数据类型自定义的结果。
转换类型 | 转化价值 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long
以下示例显示了对具有Long数据类型的值1233140483647应用数据类型自定义的结果。
转换类型 | 转化价值 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Decimal 数据类型
以下示例显示了对具有Decimal数据类型的值26.55应用数据类型自定义的结果。
转换类型 | 转化价值 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
字符串
以下示例显示了对具有String数据类型的值"Hello"应用数据类型自定义的结果。
转换类型 | 转化价值 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以下示例显示了对具有String数据类型的值"true"应用数据类型自定义的结果。
转换类型 | 转化价值 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Oracle TIMESTAMP
Oracle TIMESTAMP(0-9) 列支持以下 BSON 类型选项。该示例使用带有 TIMESTAMP(9)数据类型的源值 2025-01-01 12:34:56.123456789。
BSON 类型 | 行为 | 示例输出 |
|---|---|---|
| 截断到毫秒精度。对于 |
|
| 将完整的亚毫秒精度保留为字符串。 |
|
| 将自 Unix 纪元以来的毫秒数存储为 Int64。 |
|
| 将以 Unix 纪元以来的微秒数存储为 Int64。 |
|
| 将自 Unix 纪元以来的纳秒存储为 Int64。 |
|
带时区的Oracle TIMESTAMP
Oracle TIMESTAMP WITH TIME ZONE 列支持以下 BSON 类型选项。该示例使用源值 2025-01-01 12:34:00.000 -05:00。
注意
在 1.15.4 之前的版本中,为 TIMESTAMP WITH TIME ZONE 列选择 Date 会存储本地时间,而不转换为 UTC。更新的 Date (UTC) 选项使用原始时区域偏移将时间戳转换为 UTC。
BSON 类型 | 行为 | 示例输出 |
|---|---|---|
| 将包括时区域偏移在内的完整时间戳存储为字符串。 |
|
| 使用原始时区域偏移将时间戳转换为 UTC。 |
|
| 以 UTC 格式按原样存储本地挂钟时间,忽略时区域偏移。 |
|
| 创建两个子字段: |
|
| 将自 UTC 等效时间以来的毫秒数存储为 Int64。 |
|
| 将自 UTC 等效时间以来的微秒数存储为 Int64。 |
|
| 将自 UTC 等效时间以来的纳秒存储为 Int64。 |
|
Oracle NUMBER
Oracle NUMBER 列支持以下 BSON 类型选项。默认BSON类型取决于列的扩展(s) 和整数精度 (p - s):
s > 0:Decimal(十进制128)s <= 0和(p - s) < 10:Integer(BsonInt32)s <= 0和10 <= (p - s) < 19:Long(BsonInt64)s <= 0和(p - s) >= 19:Decimal(十进制128)
该示例使用源值 123456789。
BSON 类型 | 行为 | 示例输出 |
|---|---|---|
| 将 0 视为 false,并将任何非零数值视为 true。 |
|
| 将 NUMBER 解释为自 Unix 纪元以来的毫秒数 (1970-01-01T00:00:00Z)。过大的值可能会溢出并产生无效的日期。 |
|
| 映射到BSON十进制128。有效数字超过 34 的值可能会失去精度。 |
|
| 转换为BSON Double(64 位点)。由于 IEEE 754 舍入,大值或高精度值可能会损失精度。 |
|
| 映射到BSON Int32。超过 Int32范围的值会导致错误。 |
|
| 映射到BSON Int64。超过 Int64范围的值会导致错误。 |
|
| 将所有数字保留为字符串。在需要完整数字保真度时使用。 |
|
小数128精度
当源值超过 34 个有效数字时,Decimal 映射可能会丢失精度。以下示例使用源值 12345678901234567890123456789012345678(38 位有效数字)。
BSON 类型 | 行为 | 示例输出 |
|---|---|---|
| 有效数字超过 34 的值可能会失去精度。 |
|
| 将所有数字保留为字符串。在需要完整数字保真度时使用。 |
|
Oracle XMLTYPE
Relational Migrator将Oracle XMLTYPE 列映射到BSON String,将 XML文档存储为字符串值。
注意
要迁移XMLTYPE 列,请确保 xdb.jar Oracle JDBC驱动程序文件可用。