我正在为客户开发一个项目,我已经创建了一个SQL视图和一个SQL作业,以便从第三方供应商的数据库中提取数据。数据将作为XML文档导出。第三方供应商要求XML文件不包含任何纯文本。
在测试中,我已经在我的本地机器上进行了设置,它运行正常。
在客户服务器上,我可以查询视图并返回数据。我可以运行一个sql语句来查询视图,并以所需的XML格式返回数据。但是,当SQL作业运行时,结果数据将显示在不可用的字符串中。
SQL作业以(CmdExex)运行,SQL作业的文本为:
sqlcmd.exe -S <servername> -U <login name> -P <password> -d <databasename>
-i <sql query /input location> -o <file output location and name>.xml
-y 8000 -h -1
作业运行并通过调用此语句来查询sql视图:
SET NOCOUNT ON
SELECT * FROM dbo.<ViewName>
FOR XML PATH ('INCIDENT');
结果应如下所示:
<INCIDENT>
<YearOf>18</YearOf>
<IncdNo>xxx</Incdno>
他们在我的本地机器上运行这项工作。
但是,在客户站点上,结果如下所示:(截断空格)
0x7575087590075E0075300759007575007550075E0057500757506590065006100720075F006600757506759006E0063006750075E006F0075750C7530061006C006C0057500790070006500753006F0067500650075750C7530061006C006C005750079007000
答案 0 :(得分:0)
通过编辑此行解决了
FOR XML PATH(&#39; INCIDENT&#39;);
添加,最后是TYPE,如此
FOR XML PATH(&#39; INCIDENT&#39;),TYPE;