SQL电子邮件到CSV,结果存在行拆分问题



这个问题类似于我发现的几个问题,其中换行或回车导致将SQL网格结果复制到Excel时出现行拆分问题,并且您的结果将被截断并从下一行开始。

Name     Order#    Date        PartDescription     Store      Phone#
----     -------   ------      ----------------    -----      -----------
Tom's    3181      10/7/2017   SB4356 Artwork...   Downtown   208.452.6354

会看起来像这个

Name     Order#    Date        PartDescription     Store      Phone#
----     -------   ------      ----------------    -----      -----------
Tom's    3181      10/7/2017   SB4356 Artwork...   Downt   
own      2080.452.6354

但是,当我将SQL网格结果复制到Excel时,不会出现此问题。当我将SQL作为动态SQL运行并通过CSV将结果通过电子邮件发送给自己时,就会出现这个问题。我不确定这里的区别是什么。问题可以隔离到"零件描述"字段,它通常是100多个用户输入的字符。如果我去掉那个字段,就不会发生这种情况。

我试过做:

LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE( PartDescription, CHAR(13), ''), CHAR(10), ' '), CHAR(9), ' '), ',', ' ')))

并在较小的步骤中尝试,但没有任何效果。就像我说的,它可以将结果复制到Excel中。只是当我通过电子邮件发送给CSV时没有。我真的不知道如何隔离哪些不可见的特征可能会导致这种情况(如果是这样的话)。

我以前使用过这种方法来修复其他自动报告。这家伙太固执了。SQL在SQL Server代理中动态运行,然后以csv格式通过电子邮件发送结果。我还尝试将SQL保存在视图中,并在动态SQL中调用该视图只是为了好玩,没有任何更改。

也有同样的问题,当它达到255个字符时,结果是换行。我想如果你的PartDescription字段有很多字符,你可能会遇到同样的问题。假设您使用的是sp_send_dbmail,如果添加选项:

@query_result_width=500

或者无论你需要什么宽度,它都应该修复它。

相关内容

  • 没有找到相关文章

最新更新