sql - 数据工厂复制数据mssql到postgresql十进制数值数据转换错误
问题描述
我正在尝试使用数据工厂将数据从 mssql 数据库迁移到 postgresql 数据库。
但我在小数/数字字段中出现错误。我该如何解决这个问题?
Error:
Error code
2200
Troubleshooting guide
Failure type
User configuration issue
Details
**'Type=Npgsql.PostgresException,Message=22P02: invalid input syntax for type numeric: "0,833",Source=Npgsql,'**
解决方案
我有一个问题,源数据类型是什么?如果它是十进制/数字数据类型并且有像'0,833'这样的数据,一定是错误的。
所以我假设它是源中的字符串数据,而目标数据类型是 PostgreSQL 中的数字。
由于您的源是 MSSQL,您可以只使用一个Replace()
函数将“0,833”转换为“0.833”:
select a, replace(a,',','.') convert_a, test.b from test
更新:
另一种方式,您可以使用数据流派生列表达式来更改数据replace(a, ',', '.')
::
请在源投影中将数据类型设置为字符串。或者先将其转换为字符串数据:replace(toString(a), ',', '.')
.
HTH。
推荐阅读
- sql - 查询数据到一行
- python - Workers = List[str] 是什么意思?如何添加字符串?
- redis - 此 Redis 客户端异常是否表示网络问题?
- javascript - 无法读取未定义的属性(读取“ajax”)
- python - 理解python中的类方法
- bash - 使用 bash 向 Zotero 添加插件?
- swift - 如何每天安排 UNUserNotificationCenter 但从第二天开始?
- mongodb - 如何在mongodb聚合框架中转换深度嵌套的数据?
- linux - tar 命令在带有变量的 bash 脚本中不起作用
- javascript - SphereBufferGeometry 上的 THREE.js ShaderMaterial UV 包裹问题