BCP в файл CSV с запятыми в данных

У меня есть процесс BCP, который вызывает хранимую процедуру. Обычно я выполняю эту хранимую процедуру и копирую данные на лист Excel, в котором я указал все столбцы как текст и сохранил его как CSV.

Мне нужно автоматизировать эту работу, и я играл с командой BCP, но пока у меня проблемы. В данных, которые у меня есть, есть запятые, которые смещают данные влево. Могу ли я решить эту проблему с помощью файла форматирования или чего-то в этом роде?

Я бы предпочел не цитировать их в выводе самой процедуры.


person JBone    schedule 13.01.2014    source источник


Ответы (1)


В команде BCP есть переключатель -t, который указывает терминатор поля. В вашем случае это запятая или CHR (44).

http://technet.microsoft.com/en-us/library/ms162802.aspx

Чтобы в MS Excel не возникало проблем с открытием файла, заключите все текстовые поля в запросе QUERY в двойные кавычки "" или CHR (34).

Вот пример запроса от Adventure Works.

-- Enclose text w/ possible commas in quotes
select 
  char(34) + AddressLine1 + char(34) as fmt_address_line1,
  char(34) + City + char(34) as fmt_city,
  PostalCode as postal_code
from 
  [AdventureWorks2012].[Person].[Address]

Это должно позволить вам открыть файл в MS Excel без каких-либо проблем.

person CRAFTY DBA    schedule 13.01.2014