Ошибка импорта журнала IIS в SQL Server 2008 - PullRequest
3 голосов
/ 06 апреля 2010

Я пытаюсь импортировать журналы IIS в SQL Server 2008. Я получаю эту ошибку ниже.

Ошибка 0xc02020a1: задача потока данных 1: Ошибка преобразования данных. Данные преобразование для столбца "cs (User-Agent)" возвращено значение статуса 4 и статус текст "Текст был усечен или один или больше персонажей не было совпадений в целевая кодовая страница. ". (SQL Server Мастер импорта и экспорта)

Я попытался изменить ширину столбца пользовательского агента на varchar (8000) и nvarchar (4000) неудачно. Просьба помочь

-Vivek

Ответы [ 3 ]

9 голосов
/ 07 апреля 2010

Как вы выполняете импорт?

Я бы также посмотрел на Microsoft LogParser (как упомянул Мейо в комментарии), а также для запроса файлов в стиле SQL, вы также можете использовать его для импорта файлов в База данных SQL Server, и она позаботится о создании целевых таблиц для вас. Синтаксис выглядит примерно так (при необходимости заменяя {...} заполнители):

LOGPARSER "SELECT * INTO {outtable} FROM {all090623.log}" 
        -o:SQL -server:{myserver}
        -database:{weblogs}
        -driver:"SQL Server" 
        -createTable

Как только она появится в базе данных, вы можете добавлять индексы, как обычно, и все готово ...

2 голосов
/ 06 апреля 2010

Я не уверен, что это правильный путь.

но это решило мою проблему

В выберите шаг источника данных. я выбрал расширенный и указал ширину выходного столбца как 5000, и это сработало

0 голосов
/ 06 апреля 2010

Просто сделайте столбец «текст», и вы не столкнетесь с какими-либо ограничениями длины. Как только вы закончите импорт, отсканируйте столбец для значений> 8000 символов и посмотрите, что это такое.

Иногда строка в файле IIS записывается неправильно, и вы получаете пропущенные столбцы или перекрывающиеся столбцы, что может вызвать проблему. Но использование «текста», безусловно, устранит проблему усечения данных.

После импорта вы всегда можете установить новый столбец с именем [cs (User-Agent) varchar], который называется varchar (8000), и скопировать в него данные с помощью convert (varchar (8000), [cs (User-Agent)). ])

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