sql server - NULL is displayed as an output of executing bcp command in sql -


i'm building query executed bcp utility in sql.

after executing query i'm getting null result output.

i asked question related discussion, question concentrated on different kind of error.

this query:

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 select null ''transaction unique id'', convert(varchar(10),convert(datetime,date,1),101) ''transaction date'',          null ''person unique id'' tblchromeriverinitdata yyyymm = ''' + cast(@input varchar) + ''''  select @query      --need change @shareddevfolder depending on server environment set @bcpcommand = 'bcp "' + @query + '" queryout "'     set @bcpcommand = @bcpcommand + @shareddevfolder + @filename + '" -c  -t -t^| -r\n'  exec @rc = master..xp_cmdshell @bcpcommand 

this final query syntax display make sure query correct:

select 'transaction unique id','transaction date', 'person unique id' union select null 'transaction unique id', convert(varchar(10),convert(datetime,date,1),101) 'transaction date', null 'person unique id' tblchromeriverinitdata yyyymm = '201507'

and looks me fine.

however, when executing

select 'transaction unique id','transaction date', 'person unique id' union select null 'transaction unique id', convert(varchar(10),convert(datetime,date,1),101) 'transaction date', null 'person unique id' tblchromeriverinitdata yyyymm = @input

by itself, works fine

what can wrong?

i'm not sure if issue, or if it's encountered when tried duplicate issue. when set @query put part of select statement on 1 line, hit enter , put more of statement on next line. when ran got output said "usage: bcp {dbtable | query} {in | out | queryout | format} datafile...null." however, when put statement on single line worked fine. don't think it's issue data type sizes, because tried increase @query , @bcpcommand 4000 , still got same error. hope helps!


Comments