问题描述
如果表在源中具有类型为 decimal(38,32)
的列,则 sql Server 实时复制管道将不起作用。它继续运行,但没有数据被拉取。
如果我仔细查看 Stackdriver 日志,我会看到以下错误:
数字字段“XXXXXXXX”具有无效的精度“1”和小数位数“32”。精度最大为 38,小数位数最大为 9
如果我取消选择此列,管道将起作用。
解决方法
- Bigquery 正在考虑将 decimal(38,32) 作为一种 NUMERIC DECIMAL 数据类型,该数据类型支持精度 38 并扩展到 9。
- 我建议您将其减少到 NUMERIC DECIMAL 类型允许的限制或使用十进制类型 BIGNUMERIC DECIMAL,它支持高达 76 的精度和高达 38 的缩放。