bcp select与STUFF函数一起转换为.json格式
我有一个包含6列的表,需要将该输出转换为.json格式,并将输出发送到一个文件夹中 我只测试了一个专栏。当我执行select语句时,我得到了正确的输出bcp select与STUFF函数一起转换为.json格式,json,sql-server,tsql,bcp,Json,Sql Server,Tsql,Bcp,我有一个包含6列的表,需要将该输出转换为.json格式,并将输出发送到一个文件夹中 我只测试了一个专栏。当我执行select语句时,我得到了正确的输出 select'[' +STUFF((select ',{'+ '"LocationID":"' +LocationID++'"}'FROM ##TABLE FOR XML PATH(''),TYPE).value('.','varchar(MAX)'),1,1,'') +']'; 但当我将此select添加到bcp时,我得到一个错误:复制方向必
select'[' +STUFF((select ',{'+ '"LocationID":"' +LocationID++'"}'FROM ##TABLE FOR XML PATH(''),TYPE).value('.','varchar(MAX)'),1,1,'') +']';
但当我将此select添加到bcp时,我得到一个错误:复制方向必须为“in”、“out”或“format”
DECLARE @cmd varchar(8000)
SET @cmd = 'bcp "select ''['' +STUFF((select '',{''+ ''"LocationID":"'' +LocationID+''"}''FROM ##TABLE FOR XML PATH(''),TYPE).value(''.'',''varchar(MAX)''),1,1,'') +'']''" queryout T:\filename.json -c -t, -T'
EXEC master..xp_cmdshell @cmd
尝试了不同的方法,但没有成功。感谢您的帮助。您创建的bcp命令中包含的精心编制的SQL命令有一个错误: 对于XML路径(“”) 您似乎已经熟悉使用“双单引号”来获取字符串中的单引号的必要性,但您只是错过了一个位置。 您的代码应该是: 用于XML路径(“”)
注意:应避免使用xp\u cmdshell。它带来了严重的安全风险。xp\u cmdshell应被禁用。您好,您的数据库引擎是什么?Oracle、SQL Server?