Ошибка прямого импорта из Excel в SQL - PullRequest
1 голос
/ 10 августа 2009

Работая в течение значительного времени над взломом некоторых данных о продажах, я натолкнулся на ошибку, которая стала меня реально беспокоить, съедая мое рабочее время. После стольких усилий я был так сыт по горло и почти разочаровался в не импортируемых записях.

Сценарий:

  1. Данные о массовых продажах поступают в формате txt / csv. Их необходимо импортировать в базу данных SQL, а затем сопоставить с информацией об истории адресов, доступной в комбинации таблиц, путем проверки строк непосредственно из поля в поле.

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

  3. Большая часть соответствовала, за исключением немногих, которые создавали проблемы. Мне просто нужно было импортировать их в таблицы истории. Затем начались проблемы, хотя я обновил их, но не смог их сопоставить.

Через несколько часов я просто попросил свою подружку проверить, есть ли какая-либо ошибка в строке, с которой я работал.

Строка "Bramhall Stockport" должна соответствовать "Bramhall Stockport". Для сценария SQL эти две строки не совпадают.

Бьюсь об заклад, если вы скопируете и вставите на свой стол это будет соответствовать, потому что теперь это текстовый формат.

Затем Ана поняла ошибку (она не компьютерный гик, мастер архитектуры), просто скопировав и вставив в Microsoft Word 2007.

Снимок экрана: http://www.contentbcc.com/Anushka/sql_xls.png

Вы видите разницу? Первый находится в файле txt / csv, а второй - в таблице SQL.

1 Ответ

0 голосов
/ 10 августа 2009

В первом у вас есть три регулярных пробела (ascii 20). Во втором у вас есть обычный пробел, за которым следует неразрывный пробел (юникод 0xA0). В Excel вы можете выполнить поиск и заменить его на ALT + 0160 в качестве поиска и пробел в качестве замены, чтобы исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...