代码之家  ›  专栏  ›  技术社区  ›  Entity

从错误中大容量插入SQL

  •  0
  • Entity  · 技术社区  · 14 年前

    我正试图将CSV文件插入Microsoft SQL Server Management Studio数据库,如下所示:

        BULK INSERT [dbo].[STUDY]
            FROM 'C:\Documents and Settings\Adam\My Documents\SQL Server Management Studio\Projects\StudyTable.csv' 
        WITH 
        ( 
            MAXERRORS = 0,
            FIELDTERMINATOR = ',',
            ROWTERMINATOR = '\n'
        )
    

    但我有错误:

        Msg 4863, Level 16, State 1, Line 2
        Bulk load data conversion error (truncation) for row 1, column 9 (STATUS).
    
        Msg 7399, Level 16, State 1, Line 2
        The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
    
        Msg 7330, Level 16, State 2, Line 2
        Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
    

    StudyTable.csv ,以保护我们工作的公司的隐私。

    编辑 我可以保证 csv 尽管如此。它是从OpenOffice的Excel版本导出的,我检查并确保它是有效的。

    编辑2

        1234,,,1234,1234,,"asdf","asdf","Z","asd",7/1/2010 12:23,8/5/2010 13:36,9/4/2010 13:36,"(asdf,1661,#1234,F,T)","F",,,"F",,"68866",1234,1234,1234,"F"
    

    下面是 STUDY

    CREATE TABLE [dbo].[STUDY]
    (
        [STUDY_ID] INT IDENTITY(1,1) NOT NULL,
        [PARENT_ID] INT,
        [GROUP_ID] INT,
        [WORKFLOW_NODE_ID] INT,
        [STUDY_TEMPLATE_ID] INT,
        [INSPECTION_PLAN_ID] INT,
        [NAME] VARCHAR(255),
        [DESCRIPTION] VARCHAR(4000),
        [STATUS] VARCHAR,
        [OLD_STATUS] VARCHAR,
        [CREATED_ON] DATE,
        [COMPLETED_ON] DATE,
        [AUTHORIZED_ON] DATE,
        [EVENTS] VARCHAR,
        [NEEDS_REVIEW] CHAR,
        [HAS_NOTES] CHAR,
        [HAS_AUDITS] CHAR,
        [STUDY_PART] CHAR,
        [STUDY_TYPE] VARCHAR,
        [EXTERNAL_REFERENCE] VARCHAR,
        [CREATED_BY] INT,
        [COMPLETED_BY] INT,
        [AUTHORISED_BY] INT,
        [ARCHIVED_CHILD_COMPLETE] CHAR
    )
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   JNK    14 年前

    听起来你的数据 STATUS

    检查该字段的定义,确保.csv中的数据适合(长度和类型)。

        2
  •  0
  •   Dan    14 年前

    第一个错误可能是因为列太大,无法容纳数据库。首先要考虑的是CSV文件是否包含列标题?

    您的任何字段是否包含逗号作为其数据的一部分-例如 大街37号 哪个没有用引号括起来?因为数据中的“问题”(数据是有效的,只是没有达到预期的效果),我过去很多次都失败了。如果你的CSV文件是几千行或更多-如果你尝试只导入前一百(或十)行会发生什么?