位置: 编程技术 - 正文

SQL Server数据迁移至PostgreSQL出错的解释以及解决方案(sqlserver2008数据迁移)

编辑:rootadmin

推荐整理分享SQL Server数据迁移至PostgreSQL出错的解释以及解决方案(sqlserver2008数据迁移),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql server的数据如何迁移到mysql,SQL server数据迁移原因,sql数据库迁移,SQL server数据迁移hana数据库表名,sql server的数据如何迁移到mysql,sql server数据文件迁移,SQL server数据迁移hana数据库表名,SQL server数据迁移hana数据库表名,内容如对您有帮助,希望把文章链接给更多的朋友!

问题重现:

1、PG客户端:

2、SQL Server产生数据

然后通过java程序进行获取数据并插入到PG,同样会得到错误信息:

首先我们认为此为gb转化到UTF8时,发生了无法转化的错误。经查UTF8是变长的, 1-6个字节。他的编码规则如下:

Bits Last code point Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 7 U+F 0xxxxxxx U+FF xxxxx xxxxxx U+FFFF xxxx xxxxxx xxxxxx U+1FFFFF xxx xxxxxx xxxxxx xxxxxx U+3FFFFFF xx xxxxxx xxxxxx xxxxxx xxxxxx U+7FFFFFFF x xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx

而0x是符合UTF8规则的。这就使我们非常诧异。然后我们发现有两点继而确认了问题:1、

2、

Terminating character

Indicated by

Tab

t

This is the default field terminator.

Newline character

SQL Server数据迁移至PostgreSQL出错的解释以及解决方案(sqlserver2008数据迁移)

n

This is the default row terminator.

Carriage return/line feed

r

Backslash1

\

Null terminator (nonvisible terminator)2

Any printable character (control characters are not printable, except null, tab, newline, and carriage return)

(*, A, t, l, and so on)

String of up to printable characters, including some or all of the terminators listed earlier

(**t**, end, !!!!!!!!!!, t—n, and so on)

Source: Server处理是不相同的,所以在这里出现了错误。

而导致这一问题的PG具体代码如下(src/backend/utils/mb/wchar.c的pg_verify_mbstr_len):

report_invalid_encoding函数是将错误信息返回,也就是

invalid byte sequence for encoding "UTF8": 0x而真正导致这一问题的就是:!IS_HIGHBIT_SET(*mbstr)当*mbstr为0x时进入判断,然后进而判断*mbstr是否为,当为时,直接进入函数report_invalid_encoding报错。

所以出现此问题的原因是PG和SQL Server对null的处理是不相同的。

处理方案 :

1、将SQL Server源数据进行修改方法,

2、对应用进行修改,获取到SQL Server数据时,将数据进行转化,和第一种方法异曲同工。

本文链接地址:https://www.jiuchutong.com/biancheng/319669.html 转载请保留说明!

上一篇:CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享(centos执行sh)

下一篇:DB2 UDB V8.1管理学习笔记(一)(db2数据库管理的工具)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络