【发布时间】:2015-07-20 15:14:39
【问题描述】:
我正在构建一个 query 以在 SQL 中使用 bcp 实用程序执行。
执行查询后,我得到一个NULL 结果作为输出。
我已经问过一个相关讨论的问题,但问题集中在不同类型的错误上。
这是我的查询:
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 = '\\REMOTE_SERVER\DATAFOLDER\'
SET @input = 201507
SET @environment = 'DEV'
SET @customerCode = '123'
SET @parserConfig = '100'
SET @bucketAssign = 'Bucket1'
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
这是我显示的最终查询语法,以确保我的查询正确:
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 = '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
就其本身而言,一切正常
有什么问题?
【问题讨论】:
-
您的表中有与 where where 匹配的数据?
-
实际上,如果我有
select * from tblChromeRiverInitData作为查询,我的 bcp 命令就会执行。由于其他一些要求,我决定将查询更改为不同的组合。这就是我开始遇到问题的地方 -
你修改的查询是否独立工作?
-
是的,我修改后的查询独立工作。我更新了我的问题
标签: sql-server tsql bcp