2

我正在尝试将 CSV 文件中包含的大量数据导入 SQL 数据库。CSV 大小为 4g。CSV 有 329 列和 300,000 多行数据。到目前为止,我已经成功创建了数据库和表,一旦导入就会保存数据。数据包含字符串 (VARCHAR(x)、数字 (INT) 和日期 (DATE)。

CSV 文件中包含的数据由分隔符“,”分隔,但所有数据字段都用双引号括起来,有些字段不包含数据值。下面是数据的模拟示例。

"123244234","09/12/2012","名字","姓氏","地址 1","","","555-555-5555","","国家代码"

在研究中,我确定导入数据的最简单方法是使用 BCP 创建格式文件,然后将其与 BULK INSERT 一起使用。唯一可能是格式化格式文件以删除双引号。当尝试在没有格式文件的情况下导入时,它在第一行失败,因为第一列第一行是数字并且周围有“”。

我查看了以下链接,该链接讨论了删除双引号“ http://support.microsoft.com/default.aspx?scid=kb;EN-US;132463 ”并使用虚拟条目删除引号. 在这种情况下,这是很多手动编辑。有谁知道编辑格式文件的更好方法?这是格式文件的示例:

10.0
329
1       SQLCHAR             0       12      ","     1     NPI                            ""
2       SQLCHAR             0       12      ","     2     Entity Type Code               ""
3       SQLCHAR             0       12      ","     3     Replacement NPI                ""
4       SQLCHAR             0       9       ","     4     Employer Identification Number (EIN)                    SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR             0       70      ","     5     Provider Organization Name (Legal Business Name)           SQL_Latin1_General_CP1_CI_AS
6       SQLCHAR             0       35      ","     6     Provider Last Name (Legal Name)                           SQL_Latin1_General_CP1_CI_AS
7       SQLCHAR             0       20      ","     7     Provider First Name                         SQL_Latin1_General_CP1_CI_AS
8       SQLCHAR             0       20      ","     8     Provider Middle Name                         SQL_Latin1_General_CP1_CI_AS
9       SQLCHAR             0       5       ","     9     Provider Name Prefix Text               SQL_Latin1_General_CP1_CI_AS
10      SQLCHAR             0       5       ","     10    Provider Name Suffix Text
4

0 回答 0