ssis输出json文件,添加额外的crlf

时间:2019-01-06 11:32:25

标签: json sql-server ssis etl

此问题已使用c#代码解决,请参阅此帖子the post

我在ole db源中包含软件包,以运行查询以生成平面文件目标的Json文件。查询:请注意,如果列活动中确实存在crlf,则我已使用replace来消除crlf(我看不到)

SELECT  
Replace(Replace([activity], char(13),''), char(10),'') [activity]
FROM [CRM].[dbo].[JJVCACUProductElectron] for json auto

生成的json带有crlf,因此如果在记事本++中查看,可以看到多行。并且当将内容粘贴到在线json解析器中时,格式无效。在从生成的josn文件中手动删除所有crlf后,json数据将在一行中,然后在解析器中使用该格式即可。

很奇怪,如果我更改查询以仅将一条记录返回到文件中,那么json就可以了。表中只有7行,因此我尝试了每一行并且它们都起作用,这使我怀疑crlf是否真的是问题所在。但是,如果没有此列,则可以将所有行生成为json。

我尝试了使用变量存储查询内容然后选择变量的方法,这将起作用,但是对于具有数千万行的表,将导致性能问题。因此,这将不是一种选择。

结论:

  1. 我不能使用将内容放入变量然后输出的方法。
  2. 删除该列上的crlf似乎无效,或者该列中确实没有crlf。
  3. 从生成的文本文件中删除crlf将起作用。但是这些孩子来自哪里?

这是[表格]中的选择活动

enter image description here

这显示了生成的json文件,您可以看到有两行。

enter image description here

在第一行的末尾加上一个crlf。如果删除此crlf,所以只有一行,则内容是有效的json。

enter image description here

0 个答案:

没有答案