批量插入带有格式文件的Windows事件日志CSV

时间:2014-12-17 02:28:32

标签: sql events logging insert bulk

有关如何使用格式文件导入带双引号的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)"。

1 个答案:

答案 0 :(得分:0)

您能告诉我们您尝试使用格式文件导入哪个Windows事件日志,因为我可以看到它们的格式不同,具体取决于我系统上的事件日志类型(应用程序,系统,设置,转发事件,安全性) ?

例如:

  • Setup_event_log:没有双重提问
  • System_event_log:当信息涵盖多行时,仅使用双引号
  • ...

或者您能为我们提供一些样本数据,以便我们为您提供帮助吗? 我试图帮助你,因为我遇到了同样的问题。

欢呼声

相关问题