将存储在Table列中的XML数据导出到xml文件

时间:2016-06-29 07:29:34

标签: sql sql-server xml

我必须将存储在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 \'

创建文件

1 个答案:

答案 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;