sql server迁移mysql dump 快_对于SQL Server数据迁移至PostgreSQL出错的解释以及解决建议...

最近对SQL Server到PostgreSQL的数据迁移时出现了问题,返回的错误为:invalid byte sequence for encoding "UTF8": 0x00。

经查证pg源代码,该问题引起的原因是sql server的字符类型字段中含有空字符\0,该字符在pg中不支持。

问题重现:

1、PG客户端:

postgres=# create table text_test (id int,info text);

CREATE TABLE

postgres=# insert into text_test values (1,E'\0x00');

ERROR: invalid byte sequence for encoding "UTF8": 0x00

2、SQL Server产生数据

create table test_varchar(id int,name varchar(20));

insert into test_varchar values (1, 'name' + char(0));

insert into test_varchar values (1, 'name' + ''); 然后通过java程序进行获取数据并插入到PG,同样会得到错误信息:

invalid byte sequence for encoding "UTF8": 0x00

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

Bits

Last code point

Byte 1<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值