Создайте CSV-файл с двумя заголовками. - PullRequest
0 голосов
/ 27 февраля 2019

Мне нужно создать CSV-файл с двумя заголовками

пример

Filename|FileDate|Location|Numberofrows
Testfile|20190101|USA     |1

Firstname|LastName|DOB     |Address1      |Address2
John     |Doe     |20800101|123 4th street|apt 2

Я просто знаю, как создать файл CSV только с одним заголовком,Может кто-нибудь сказать мне, как я могу создать один файл .csv в этом формате из SQL.

Я использую следующий метод для создания CSV-файла с одним заголовком

DECLARE @command VARCHAR(4000)    
DECLARE @FileDirectory VARCHAR(1000) = 'c:\test\'    
DECLARE @HeaderFile varchar(255) = 'Headers.txt'    
DECLARE @FileName VARCHAR(255)

SET @FileName = 'TestFile_' + CONVERT(VARCHAR,GETDATE(),112)

SET @command = 'bcp "select * from TESTDB.dbo.TEST_Table"'    
       + ' queryout "' + @FileDirectory + @FileName + '.txt"'    
       + ' -c -q -t, -T  -S'+@@servername

EXEC master..xp_cmdshell @command

SET @command =  'copy "' + @FileDirectory + @HeaderFile + '"+"' + @FileDirectory + @FileName + '.txt"' +  ' "' + @FileDirectory + @filename + '.csv"'

EXEC master..xp_cmdshell @command

SET @command = 'del "' + @FileDirectory + @FileName + '.txt"'

EXEC master..xp_cmdshell @command

1 Ответ

0 голосов
/ 28 февраля 2019

Вы уже добавляете один заголовок.Просто добавьте еще один, используя тот же метод.

Команда dos COPY объединяет файлы с помощью оператора +.

, поэтому вместо этого:

SET @command =  'copy "' + 
    @FileDirectory + @HeaderFile + '"+"' + 
    @FileDirectory + @FileName + '.txt"' +  
    ' "' + @FileDirectory + @filename + '.csv"'

Используйте это:

SET @command =  'copy "' + 
    @FileDirectory + @HeaderFile + '"+"' + 
    @FileDirectory + @HeaderFile + '"+"' + 
    @FileDirectory + @FileName + '.txt"' +  
    ' "' + @FileDirectory + @filename + '.csv"'

(для ясности это на нескольких строках)

Вам может потребоваться распечатать содержимое @command для отладки, если у вас есть проблемы.

Должно получиться так:

COPY C:\Folder\Header.TXT + C:\Folder\Header.TXT + C:\Folder2\Data.TXT C\OutputFile\FInalFile.CSV
...