Postgresql 08p01:消息格式无效

Postgresql 08p01:消息格式无效,postgresql,azure-pipelines,npgsql,azure-data-factory-2,Postgresql,Azure Pipelines,Npgsql,Azure Data Factory 2,在Azure ADF v2管道中,我尝试将数据从sql server复制到Azure postgresql数据库。我的源是sql server,我的接收器是Azure postgresql数据库。我正在将所有记录从源表移动到目标表。但是,在管道执行时,获取错误为 “错误代码”:“2200”,“消息”:“type=npgsql.postgresception,message=08p01:消息格式无效”,“failuretype”:“usererror” 问题是什么 “错误代码”:“2200”,“消

在Azure ADF v2管道中,我尝试将数据从sql server复制到Azure postgresql数据库。我的源是sql server,我的接收器是Azure postgresql数据库。我正在将所有记录从源表移动到目标表。但是,在管道执行时,获取错误为

“错误代码”:“2200”,“消息”:“type=npgsql.postgresception,message=08p01:消息格式无效”,“failuretype”:“usererror”

问题是什么

“错误代码”:“2200”,“消息”: “'type=npgsql.postgresception,message=08p01:消息无效” 格式“,”故障类型“:”用户错误

您可能会发现一些与错误跟踪类似的线索。请参见上述链接中的解决方案:

基本上,如果我们尝试使用Npgsql持久化的字符串值是 从MemoryStream.GetBuffer()派生,它将爆炸,但如果它出现 从MemoryStream.ToArray()可以正常工作

官方解释如下:

请注意,缓冲区包含可能未使用的已分配字节。例如,如果将字符串“test”写入MemoryStream对象,则从GetBuffer返回的缓冲区长度为256,而不是4,未使用252字节。要仅获取缓冲区中的数据,请使用ToArray方法;但是,ToArray会在内存中创建数据的副本


现在,作为解决办法,您可以使用csv文件作为中介。将数据从sql server传输到Azure Blob存储中的csv文件。然后将数据传输到目标postgresql数据库。

我自己也遇到了这个问题。根据我的回答,您需要将“写入批量大小”从1000更改为较小的值(例如1000)。

您好,我的回答对您有帮助吗?