有关如何使用格式文件导入带双引号的CSV的stackoverflow上有几篇文章。我尝试将相同的逻辑应用于导入Windows事件日志,但我没有运气。这是我的SQL代码。
bulk insert System_logs FROM 'C:\temp\System1.csv' with
(
FIRSTROW = 3,
DATAFILETYPE='char',
FIELDTERMINATOR='","',
ROWTERMINATOR = '\r\n',
FORMATFILE= 'C:\scripts\system_logs1.fmt'
)
这是我的格式文件:
12.0
17
1 SQLCHAR 0 500 "\"" 0 FIRST_QUOTE SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 500 "\",\"" 1 EventID SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 500 "\",\"" 2 MachineName SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 4000 "\",\"" 3 Data SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 0 500 "\",\"" 4 Index SQL_Latin1_General_CP1_CI_AS
6 SQLCHAR 0 500 "\",\"" 5 Category SQL_Latin1_General_CP1_CI_AS
7 SQLCHAR 0 500 "\",\"" 6 CategoryNumber SQL_Latin1_General_CP1_CI_AS
8 SQLCHAR 0 500 "\",\"" 7 EntryType SQL_Latin1_General_CP1_CI_AS
9 SQLCHAR 0 4000 "\",\"" 8 Message SQL_Latin1_General_CP1_CI_AS
10 SQLCHAR 0 500 "\",\"" 9 Source SQL_Latin1_General_CP1_CI_AS
11 SQLCHAR 0 500 "\",\"" 10 ReplacementStrings SQL_Latin1_General_CP1_CI_AS
12 SQLCHAR 0 500 "\",\"" 11 InstanceId SQL_Latin1_General_CP1_CI_AS
13 SQLCHAR 0 500 "\",\"" 12 TimeGenerated SQL_Latin1_General_CP1_CI_AS
14 SQLCHAR 0 500 "\",\"" 13 TimeWritten SQL_Latin1_General_CP1_CI_AS
15 SQLCHAR 0 500 "\",\"" 14 UserName SQL_Latin1_General_CP1_CI_AS
16 SQLCHAR 0 500 "\",\"" 15 Site SQL_Latin1_General_CP1_CI_AS
17 SQLCHAR 0 500 "\"\r\n" 16 Container SQL_Latin1_General_CP1_CI_AS
我收到的错误是: Msg 4866,Level 16,State 8,Line 1 批量加载失败。第2行第17列的数据文件中的列太长。验证是否正确指定了字段终止符和行终止符。 Msg 7301,Level 16,State 2,Line 1 无法从OLE DB提供程序" BULK"获取所需的接口(" IID_IColumnsInfo")对于链接服务器"(null)"。
答案 0 :(得分:0)
您能告诉我们您尝试使用格式文件导入哪个Windows事件日志,因为我可以看到它们的格式不同,具体取决于我系统上的事件日志类型(应用程序,系统,设置,转发事件,安全性) ?
例如:
或者您能为我们提供一些样本数据,以便我们为您提供帮助吗? 我试图帮助你,因为我遇到了同样的问题。
欢呼声