【问题标题】:sqlcmd xml output from SQL Server Agent Job truncates XMLSQL Server 代理作业的 sqlcmd xml 输出截断 XML
【发布时间】:2015-02-02 16:56:33
【问题描述】:

我有一个 SQL Server 代理作业(将设置为按计划运行)每天检索数据。

自动化作业涉及的两个步骤如下:

第 1 步。 使用 T-SQL 执行以下查询

设置无计数;
声明@xml xml
set @xml = (select a AS a, b AS b from tableName for xml path ('path'), ROOT('paths'))
选择 @xml 作为 returnXml

步骤 2. 在 Powershell 中使用以下命令删除前 4 行,以便删除所有标题

(获取内容 "C:\cmd\xml.xml" | 其中 {$_.ReadCount -gt 4}) |设置内容“C:\cmd\xml.xml”

现在,当我查看输出文件时,我收到以下消息:
字符串数据,右截断 [SQLSTATE 01004]


我可以看到,在文件的末尾,它只是删除了一些 xml,甚至没有以正确的结束标记结束。

关于如何克服这个问题的任何想法?此外,它以正确的 XML 格式出现会很不错,而不仅仅是一个 longgg 块

我已经阅读了关于在使用 sqlcmd 时使用 :XML ON 的信息,但我没有任何运气:(

【问题讨论】:

    标签: sql sql-server xml powershell sqlcmd


    【解决方案1】:

    我进行了与您的设置类似的测试。我注意到 XML 在 64,514 个字符处被截断。这确实接近于 2^16 = 65,536 的幻数。我猜你在某个地方达到了数据上限。您可以尝试将查询限制为TOP 50000 左右并分批进行。

    【讨论】:

    • 感谢您的建议 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    相关资源
    最近更新 更多