方法一:使用人大金仓自带的【KingbaseDTS 数据库迁移工具】需要解决不兼容的错误
1、报错:
java.sql.BatchUpdateException: Batch entry 0 insert into "disability_assistance"."area_address" ( "id","level","parent_code","area_code","zip_code","city_code","name","short_name","detail_name","pinyin","longitude","latitude","irs_code" ) values ( 4076,4,'330182003','330182003232',310000,'0571','桥岭村委会','','浙江省/杭州市/建德市/更楼街道/桥岭村委会','','0.000000','0.000000',NULL ) was aborted: 错误: 数字字段溢出。Detail: 精度为10,范围是0的字段必须四舍五入到小于10^10的绝对值. Call getNextException to see other _errors in the batch.
原因:原表中的parent_code为bigint类型,迁移到人大金仓后变为了NUMERIC(10, 0)类型,导致原表中有超过10为的数据无法导入成功;
解决方案:修改NUMERIC(10, 0)中的10为实际该字段最大长度后,问题解决。
2、
com.kingbase8.util.KSQLException: 错误: "c" 不是一个有效的二进制数
3、
com.kingbase8.util.KSQLException: 错误: 无效的类型 timestamp with time zone 输入语法: "2024-01-09T04:49:43Z[UTC]"
方法二:用Navicat工具
1、把人大金仓按“postgresql”连接成功
2、使用Navicat工具中的“数据传输”工具
- 选择源数据库和目的数据库
- 选择表
- 修改配置,去掉包含索引
- 开始运行
- 等待运行结果
这种方法成功率会更高!推荐用此方法。
Tags:mysql 绝对值