我必须将存储在Table的单元格中的XML数据导出到xml文件。
我尝试在查询
下运行USE [AdventureWorks2012]
GO
-- Save XML records to a file:
DECLARE @fileName VARCHAR(50)
DECLARE @sqlStr VARCHAR(1000)
DECLARE @sqlCmd VARCHAR(1000)
SET @fileName = 'D:\SQL_Queries\PersonAdditionalContactInfo.xml'
SET @sqlStr = 'select TOP 1 AdditionalContactInfo from AdventureWorks2012.Person.Person where AdditionalContactInfo IS NOT NULL'
SET @sqlCmd = 'bcp "' + @sqlStr + '" queryout ' + @fileName + ' -w -T'
EXEC xp_cmdshell @sqlCmd
建议https://sqlwithmanoj.com/2015/04/13/export-xml-column-data-to-a-file-xml/
运行此查询后,我得到输出到网格
用法:bcp {dbtable |查询} {in |出| queryout |格式}数据文件 [-m maxerrors] [-f formatfile] [-e errfile] [-F firstrow] [-L lastrow] [-b batchsize] [-n 原生类型] [-c字符类型] [-w宽字符 类型] [-N保持非文本原生] [-V文件格式版本] [-q引用 标识符] [-C代码页说明符] [-t字段终止符] [-r 行终止符] [-i inputfile] [-o outfile]
[-a packetsize] [-S服务器名称] [-U用户名]
[-P密码] [-T可信连接] [-v版本] [-R 区域启用] [-k保持空值] [-E保持标识值] [-h“load hints”] [-x生成xml格式文件] NULL
但是没有在位置'D:\ SQL_Queries \'
创建文件答案 0 :(得分:0)
这适用于我(文件路径位于SQL Server的上下文中!!!):
CREATE TABLE dbo.tmpTest(AdditionalContactInfo XML);
INSERT INTO dbo.tmpTest(AdditionalContactInfo) SELECT '<root><a>SomeTest</a></root>';
DECLARE @fileName VARCHAR(50)='"C:\ExisitingDirectory\PersonAdditionalContactInfo.xml"';
--attention: Change the table's name!
DECLARE @sqlStr VARCHAR(1000)='select TOP 1 AdditionalContactInfo from master.dbo.tmpTest where AdditionalContactInfo IS NOT NULL';
--attention: Change the server's name
DECLARE @sqlCmd VARCHAR(1000) = 'bcp "' + @sqlStr + '" queryout ' + @fileName + ' -S TheServer -c -w -T';
EXEC xp_cmdshell @sqlCmd;
GO
DROP TABLE dbo.tmpTest;