我正在尝试将 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