【发布时间】:2023-02-06 20:57:45
【问题描述】:
我们正在从 ORACLE 到 Azure 中的 SQL。
据我所知,我们必须使用管道和数据集,以及各种 COPY 操作。
似乎没有一种方法可以从 Oracle 导入数据并通过数据流对其进行操作,而无需先将其放入暂存数据库,即使这样对于这个问题也为时已晚。
问题是 oracle 中 NUMBER 类型的列的值可能为 1.1234 或 2.23423485
我将 SQL 数据类型设置为 DECIMAL(12, 8),这应该涵盖所有具有 COPY TABLE 操作的场景。
我试过将副本作为数字,甚至作为 varchar:
{
"source": {
"name": "MYDECIMALVALUE",
"type": "String"
},
"sink": {
"name": "MyDecimalValue",
"type": "String",
"physicalType": "varchar"
}
},
然而,上述两个数字的结果将是:
2.23423485 保持为 2.23423485
1.1234 变成 1.12340001
从 oracle 中提取 NUMBER 的一些奇怪的精度问题。
上面的配置设置为
{ "source": { "name": "MYDECIMALVALUE", "type": "Decimal" }, "sink": { "name": "MyDecimalValue", "type": "Decimal", "physicalType": "decimal", "precision": 12, "scale": 8, } },有什么办法可以解决这个奇怪的怪癖吗?
【问题讨论】:
标签: oracle azure-pipelines azure-sql-database azure-data-factory