gpt4 book ai didi

sql - 通过 BCP 批量导出进行 XML 导出

转载 作者:行者123 更新时间:2023-12-04 13:42:26 30 4
gpt4 key购买 nike

我得到了一个包含一些 varbinary 数据的表 tblScan。我想将此表导出到 XML 文件,以便可以使用 BCP 批量插入将其插入到 SQL azure 中。 (顺便说一句,是否可以将 varbinary 数据转换为 XML?)

我正在做:

DECLARE @String varchar(8000)
SET @String='bcp "SELECT * FROM dbo.tblScan FOR XML RAW, XMLSCHEMA" queryout C:\Users\DAAGEU\Desktop\tblScanOutput.xml -c -T'
EXEC xp_cmdshell @String

但是我得到了这个输出错误:

Output error

还有其他解决方案吗?

最佳答案

这实际上是 VarBinary 和 XML 的问题(在 SQL 2008 R2 中):

FOR XML EXPLICIT and RAW modes currently do not support addressing binary data as URLs in column SomeComlumn. Remove the column, or use the BINARY BASE64 mode, or create the URL directly using the 'dbobject/TABLE[@PK1="V1"]/@COLUMN' syntax.

快速搜索显示this post .

您想要以 XML 格式导出有什么特殊原因吗?我一直使用 bcp 使用默认的二进制输出,并且 VarBinary 字段没有问题。二进制文件比 XML 文件小得多。如果您不想在导出和导入之间进行任何操作,我建议您使用二进制文件。

尝试将您的查询更改为:

SET @String='bcp "SELECT * FROM dbo.tblScan FOR XML RAW, BINARY BASE64" queryout C:\Users\DAAGEU\Desktop\tblScanOutput.xml -c -T'

但是,从日志中可以看出,您当前的问题是登录。您正在使用可信连接,但是当 SQL Server 引擎生成 bcp 进程时,您知道哪个身份正在运行该进程吗?它很可能是 SQL Server 身份,我猜它无法访问数据库/表(最有可能是本地系统或网络服务)。如果您仍然想使用 SQL 查询而不是批处理文件(.bat 或 .cmd)来执行此操作,我建议您使用显式登录凭据(SQL Server 身份验证)和不可信连接。

关于sql - 通过 BCP 批量导出进行 XML 导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801697/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com