0

我有多个 csv 文件和多个表。表名是文件名,列名是csv文件的第一行。

现在我想将空字符串的默认值添加到接收器表中。

考虑我的情况,

员工: id int,name varchar,is_active bit NULL

员工.csv:

id|name|is_active

1|拉贾|

现在我正在尝试将 csv 数据复制到 PostgreSQL 表中,它的抛出错误。如果其值为空,则预期结果为默认值。

4

2 回答 2

0

根据问题,尝试重现该场景,这是成功复制的以下结果。你必须使用

源数据集: employee.csv来自 Azure Blob 存储

在此处输入图像描述

接收器数据集:在这里,我使用接收器作为 Azure SQL DB 有一些限制,但你使用的 PostgreSQL 几乎是相似的。

在此处输入图像描述

复制活动设置:

mapping settings下面会有类型转换,你必须在其中导入架构,否则你可以动态添加 在此处输入图像描述

输出:

在此处输入图像描述

替代使用DataFlow- 如果您有多个数据字段,则需要使用派生列转换在数据流中生成新列或修改现有字段。

有关详细信息,请参阅映射数据流中的派生列转换

您甚至可以参考这篇 Microsoft Q&A 帖子以获得更多见解:复制任务失败,因为转换失败

于 2021-09-28T05:40:06.210 回答
0

您可以在 PostgreSQL 中使用 NULLIF:

NULLIF(argument_1,argument_2);

argument_1NULLIF 函数在等于 时返回空值argument_2,否则返回argument_1

这样您就可以将 NULL 值替换为其他值

如果您的错误与类型不匹配有关,请考虑先对列进行类型转换

谢谢!

于 2021-09-28T05:28:58.733 回答