Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bcp select与STUFF函数一起转换为.json格式_Json_Sql Server_Tsql_Bcp - Fatal编程技术网

bcp select与STUFF函数一起转换为.json格式

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时,我得到一个错误:复制方向必

我有一个包含6列的表,需要将该输出转换为.json格式,并将输出发送到一个文件夹中

我只测试了一个专栏。当我执行select语句时,我得到了正确的输出

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?