BCP输出' NULL'运行查询后

时间:2015-07-20 18:32:11

标签: sql tsql bcp

我一直在寻找这个问题的答案,到目前为止找不到任何东西。

使用查询执行bcp命令时,我将NULL作为输出。

但是,在单独执行查询时,一切看起来都不错。

首先,我想,可能是我的查询有错误,但在成功执行后,我更加困惑。

所以,这是我执行bcp命令的代码:

DECLARE @query VARCHAR(2000)
DECLARE @bcpCommand VARCHAR(1024)
DECLARE @sharedDevFolder VARCHAR(500)
DECLARE @fileName VARCHAR(200)
DECLARE @environment VARCHAR(5)
DECLARE @customerCode VARCHAR(5)
DECLARE @parserConfig VARCHAR(5)
DECLARE @bucketAssign VARCHAR(10)
DECLARE @dateFormat VARCHAR(15)
DECLARE @input INT
DECLARE @RC INT

SET @sharedDevFolder = '\\REMOTESERVER\Data'
SET @input = 201507
SET @fileName = 'Transaction-' + 
                @environment + '-' + 
                @customerCode + '-' + 
                @parserConfig + '-' + 
                @bucketAssign + '-' + 
                @dateFormat + '.txt'

SET @query = 'SELECT ''Transaction Unique ID'', ''Transaction Date'', ''Person Unique ID'' UNION ALL SELECT NULL AS ''Transaction Unique ID'', CONVERT(VARCHAR(10),CONVERT(DATETIME,Date,1),101) AS ''Transaction Date'', NULL AS ''Person Unique ID'' FROM tblChromeRiverInitData WHERE YYYYMM = ' + CAST(@input as VARCHAR)

select @query

--need to change @sharedDevFolder depending on a server environment
SET @bcpCommand = 'bcp "' + @query + '" queryout "'
set @bcpCommand = @bcpCommand + @sharedDevFolder + @fileName + '" -c -T -t^| -r\n'

EXEC @RC = master..xp_cmdshell @bcpCommand

这是我自己的查询:

DECLARE @input INT
SET @input = 201507
SELECT 'Transaction Unique ID','Transaction Date', 'Person Unique ID' UNION ALL SELECT NULL AS 'Transaction Unique ID', CONVERT(VARCHAR(10),CONVERT(DATETIME,Date,1),101) AS 'Transaction Date', NULL AS 'Person Unique ID' FROM tblChromeRiverInitData WHERE YYYYMM = @input

此查询执行正常。

我不知道从现在开始要去哪里看。

0 个答案:

没有答案