我正在使用此bcp cmd导出生成XML的长查询结果。 因此,我设置了@DTE VARIABLE并设置了@DTE ='select .... where .... FOR XML PATH' 还有一个包含动态文件名的变量。
SET @cmd = 'bcp "' + @DTE + '" queryout "' + @Filename + '" -k -x -w';
EXEC master..XP_CMDSHELL @cmd;
此导出的结果是这样的:
> output
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- usage: bcp {dbtable | query} {in | out | queryout | format} datafile
> [-m maxerrors] [-f formatfile] [-e errfile] [-F
> firstrow] [-L lastrow] [-b batchsize] [-n
> native type] [-c character type] [-w wide character
> type] [-N keep non-text native] [-V file format version] [-q quoted
> identifier] [-C code page specifier] [-t field terminator] [-r
> row terminator] [-i inputfile] [-o outfile]
> [-a packetsize] [-S server name] [-U username]
> [-P password] [-T trusted connection] [-v version] [-R
> regional enable] [-k keep null values] [-E keep identity values]
> [-h "load hints"] [-x generate xml format file]
NULL
(12 row(s) affected)
如果我不使用bcp执行查询,则结果正确。 为什么bcp会有NULL输出?
答案 0 :(得分:0)
问题在于查询必须在1条单行上。我的查询是多行的。