【问题标题】:Most efficient way to output SQL table to XML file将 SQL 表输出到 XML 文件的最有效方法
【发布时间】:2011-12-22 14:00:22
【问题描述】:

我的服务器需要处理 SQL 数据库查询和表并将其转储为磁盘上的 xml 格式。这需要是一个计划任务。

目前通过预定的批处理文件使用 BCP > sql 脚本 > xp_cmdshell >bcp,但是这个错误

SQLState = S1000,NativeError = 0
错误 = [Microsoft][SQL Server Native Client 10.0][SQL Server]警告:服务器数据(172885 字节)超过字段 (1) 的主机文件字段长度(65535 字节)。使用前缀长度、终止字符串或更大的主机文件字段大小。不能发生截断 用于 BCP 输出文件。

在日志文件中困扰着我。我还没有在网上找到解决方案。我不太明白“主机文件字段”指的是什么。原始表中没有值高达 172885 字节的列。输出文件非常大,到目前为止似乎数据都在写入,但是所有 xml 文件的末尾似乎都有一些垃圾。

性能很重要,但在这种情况下,可靠性对我来说最重要。

我已尝试在本地重新创建错误,但没有成功。服务器运行 Windows Server 2008 r2。

对错误及其含义的任何帮助或解释/分析,以及将 sql 表/查询转储到 xml 文件的简单计划解决方案的建议,将不胜感激。

【问题讨论】:

    标签: sql xml sql-server-2008-r2


    【解决方案1】:

    您应该查看 SQL Server 2005 中引入的 FOR XML PATH 语法:

    使用它,您可以轻松创建相当漂亮的 XML 输出,包括层次结构、属性等

    【讨论】:

    • 我错过了问题中的一些细节,问题不是我的表/查询到 xml,因为我目前正在使用 FOR XML 语法来获取 xml 数据,但是麻烦(和错误)我相信来自用于将 xml 数据转储到文件的解决方案。所以我更希望了解我的问题中的错误,并找到在磁盘上创建 xml 文件的解决方案。
    • @Vort3x: 好吧,你能不能把对你的SELECT ... FOR XML PATH 的调用包装成例如.NET 应用程序或可以为您在磁盘上创建文件的东西?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多