我有一个SQL Server代理作业(将设置为按计划运行)以每天检索数据。
自动化工作涉及的两个步骤如下:
第1步。
使用T-SQL执行以下查询
设置NOCOUNT ON;
声明@xml xml
设置@xml =(从tableName中选择一个AS a,b AS b作为xml路径('path'),ROOT('paths')) 选择@xml作为returnXml
步骤2.在Powershell中使用以下命令删除前4行,以便删除任何标题
(Get-Content“C:\ cmd \ xml.xml”|其中{$ _.ReadCount -gt 4})| Set-Content“C:\ cmd \ xml.xml”
现在,当我查看输出文件时,我收到此消息:
字符串数据,右截断[SQLSTATE 01004]
我可以看到,在文件的末尾,它只是关闭了一些xml,它甚至没有使用正确的结束标记。
关于我如何克服这一点的任何想法?另外,以适当的XML格式出来将是甜蜜的,而不仅仅是一个longgg块
我在使用sqlcmd时已经读过使用:XML ON但是我没有运气:(
答案 0 :(得分:0)
我运行了类似于您的设置的测试。我注意到XML被截断为64,514个字符。这非常接近2 ^ 16 = 65,536的幻数。我猜你在某个地方遇到了数据上限。您可以尝试将查询限制为TOP 50000
左右,并批量执行。