2011-01-31 6 views
1

Я пытаюсь использовать LogParser для вставки соответствующих строк из лог-файлов IIS в таблицу SQL-Server.LogParser: SQL-столбец «X» тип данных несовместим с элементом SELECT «cs-username» (тип STRING)

Я создал таблицу следующим образом:

CREATE TABLE dbo.WebLog (Id INT IDENTITY, UserName VARCHAR(MAX), 
    URL VARCHAR(MAX), DateStampUTC DATETIME) 

Это, как я звоню LogParser:

LogParser "SELECT cs-username, cs-uri-stem, TO_TIMESTAMP(date,time) 
INTO WebLog FROM ex*.log 
WHERE cs-uri-stem IN ('urlsThatICareAbout.html') AND cs-username IS NOT NULL" 
-server:<server> 
-database:<database> 
-username:<username> 
-password:<password> 
-transactionRowCount:-1 
-ignoreIdCols:ON 
-o:SQL 
-driver:"SQL Server" 
-i:IISW3C 

Я получаю следующее сообщение об ошибке:

SQL table column "UserName" data type is not compatible with 
    SELECT clause item "cs-username" (type STRING) 

Любой идеи? Являются ли типы STRING и VARCHAR (MAX) несовместимыми?

ответ

2

Возможно, вы захотите уменьшить это на что-то вроде NVARCHAR (1000) или даже 255 или меньше. VARCHAR (max) рассматривается как тип TEXT/BLOB некоторыми старыми библиотеками. Также может быть разница между VARCHAR и NVARCHAR (для международных символов)

1

Попробуйте использовать собственный драйвер SQL Server, а не по умолчанию для драйвера ODBC SQL Server - это всегда работало на меня.

LogParser "SELECT cs-username, cs-uri-stem, TO_TIMESTAMP(date,time) 
INTO WebLog FROM ex*.log 
WHERE cs-uri-stem IN ('urlsThatICareAbout.html') AND cs-username IS NOT NULL" 
-server:<server> 
-database:<database> 
-username:<username> 
-password:<password> 
-transactionRowCount:-1 
-ignoreIdCols:ON 
-o:SQL 
-driver:"SQL Server Native Client 10.0" 
-i:IISW3C 

 Смежные вопросы

  • Нет связанных вопросов^_^