首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过BCP批量导出XML

通过BCP批量导出XML
EN

Stack Overflow用户
提问于 2012-01-10 10:23:19
回答 1查看 6.5K关注 0票数 3

我得到了一个包含变量二进制数据的表tblScan。我想将这个表导出到一个XML文件中,这样我就可以用BCP大容量插入在SQL azure中插入它。( BTW甚至可以将变量二进制数据转换为XML ?? )

我在做:

代码语言:javascript
复制
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

但是我得到了输出错误:

还有其他解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-10 12:08:30

这实际上是VarBinary和R2的一个问题(在SQL2008XML中):

对于XML,显式和原始模式目前不支持将二进制数据作为SomeComlumn列中的URL进行寻址。删除列,或使用二进制BASE64模式,或使用‘dbobject/TABLE@PK1 1=“V1”/@COLUMN’语法直接创建URL。

快速搜索显示为这个职位

是否存在要在XML中导出的部分原因?我一直使用默认的二进制输出使用bcp,VarBinary字段没有问题。二进制文件比XML文件要小得多。如果您不想在导出和导入之间做任何操作,我建议您使用二进制文件。

尝试将查询更改为:

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

但是,从日志中可以看到,您当前的问题是登录。您使用的是受信任的连接,但是当Server引擎生成bcp进程时,您知道哪个标识正在运行吗?它很可能是Server标识,我猜它没有访问数据库/表的权限(而且大多数可能是本地系统或网络服务)。如果您仍然希望使用SQL查询,而不是批处理文件(.bat或.cmd),我建议您使用显式登录凭据( Server ),而不是信任连接。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8801697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档