2013-07-09 1 views
0

Мой разделитель столбцов - это вертикальная полоса «|» Как я могу сказать SQL, чтобы не создавать новый столбец, когда он видит «\ |»SQL Server Импорт/экспорт: как создать разделитель столбцов EXCEPTION

Мои текстовые файлы ограничены вертикальной полосой «|». Однако иногда вертикальная полоса будет отображаться в имени/значении, и SQL разделит ее на отдельные столбцы. Чтобы исправить эту проблему, владелец данных вставил \ перед каждой вертикальной полосой, которая НЕ является разделителем.

Что является самым простым способом сказать SQL Server не разделить поле в отдельном столбце, когда видит «\ |» в отличие от обычной вертикальной полосы. Могу ли я использовать классификатор текста/какой-либо другой простой способ сделать это?

+0

Вы должны использовать «текстовый идентификатор» вместо этого символа escaping. Если у вас есть '' 'как текстовый идентификатор и обернуто содержимое столбца в них (' 'askljdalsjkd | klj '| kdkd | kdslsd'), тогда у вас не будет проблемы – Lamak

+1

Нельзя ли использовать обычную формат CSV? –

ответ

0

Не существует отличного способа, SQL Server допускает, чтобы текстовые классификаторы, но не разграничители, насколько мне известно.

Если в пространстве разделителя нет места, в этом случае вы можете использовать «|» (пространство пространства) в качестве разделителя, чтобы исключить slashpipe.

Если вы не можете получить данные в соответствующем формате, вы можете заменить вхождения «/ |», с нестандартным символом или строкой, через простой скрипт или в SSIS.

Вы также можете импортировать файл как есть и отрегулировать его после импорта (или во время импорта при использовании SSIS). В зависимости от количества ошибочных труб, это может быть необоснованным.