LogParser: Table Table Table Teal Type «X» Тип данных не совместим с элементом предложения SELECT «CS-USERNAME» (тип строки)

StackOverflow https://stackoverflow.com/questions/4849335

  •  27-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать Logparser Чтобы вставить соответствующие строки из журнала IIS в таблицу SQL-Server.

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

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)

Любые идеи? Несовместимы ли типы строки и varchar (max)?

Это было полезно?

Решение

Возможно, вы захотите уменьшить это до чего -то вроде Nvarchar (1000) или даже 255 или менее. Varchar (max) рассматривается как тип текста/Blob некоторыми более старыми библиотеками. Это также может быть разница между Varchar и Nvarchar (для международных символов)

Другие советы

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

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top