Запястья в CSV-данных

У меня есть файл CSV, который я непосредственно импортирую в таблицу SQL-сервера. В CSV файле каждый столбец разделяется запятой. Но моя проблема в том, что у меня есть столбец "адрес", а данные в этом столбце содержат запятые. Так что происходит то, что некоторые данные столбца адреса идут в другие столбцы, которые будут импортированы на SQL-сервер.

Что мне делать?

Ответы

Ответ 1

Если в столбце есть запятая, то этот столбец должен быть окружен одной цитатой или двойной кавычкой. Тогда, если внутри этого столбца есть одиночная или двойная кавычка, у него должна быть эвакуированная хартия перед ней, обычно \

Пример формата CSV

ID - address - name
1, "Some Address, Some Street, 10452", 'David O\'Brian'

Ответ 2

для этой задачи решение очень просто. сначала выберите = > файл с плоским файлом = > просмотрите файл = > чем перейти в "Текстовый классификатор" по умолчанию, его нет, напишите здесь двойную кавычку вроде (") и следуйте инструкциям мастера.

шаги - сначала выберите = > файл с плоским файлом = > просмотрите свой файл = > классификатор текста (только для записи) и следуйте инструкциям мастера.

удача

Ответ 3

Я бы предложил использовать другой формат, чем CSV, или попытаться использовать другие символы в качестве разделителя полей и/или разделителя текста. Попробуйте найти символ, который не используется в ваших данных, например. |, #, ^ или @. Формат одной строки станет

|foo|,|bar|,|baz, qux|

Анализатор корректного поведения не должен интерпретировать "baz" и "qux" как два столбца.

В качестве альтернативы вы можете написать свой собственный voodoo импорта, который устраняет любые проблемы. Для более позднего, вы можете найти этот Groovy скелет полезным (не знаете, на каких языках вы владеете, хотя)

Ответ 4

Большинство систем, включая Excel, позволят включать данные столбца в одинарные кавычки...

col1, col2, col3 'test1', 'my test2, с запятой', test3

Другой альтернативой является использование версии CSV для Macintosh, которая использует TAB в качестве разделителей.

Ответ 5

Самый лучший, самый быстрый и простой способ разрешить запятую в проблеме данных - использовать Excel для сохранения файла с разделителями-запятыми после установки параметра разделителя списков Windows на нечто, отличное от запятой (например, на трубе). Затем вы создадите для вас отдельный файл (или любой другой), который вы можете импортировать. Это описано здесь.

Ответ 6

Я не думаю, что добавление цитаты может помочь. Лучший способ, который я предлагаю, - заменить запятую в содержимом другими знаками, такими как пробел или что-то в этом роде.

replace(COLUMN,',',' ') as COLUMN

Ответ 7

Добавление речевой метки в столбец выбора на обеих сторонах. Вы также должны указать столбец как NVARCVHAR (MAX), чтобы превратить его в строку, если столбец представляет собой ТЕКСТ.

SQLCMD -S DB-SERVER -E -Q "set nocount on; set ansi_warnings off; SELECT '""' + cast ([Column1] as nvarchar(max)) + '""' As TextHere, [Column2] As NormalColumn FROM [Database].[dbo].[Table]" /o output.tmp /s "," -W