我正在尝试将CSV文件中包含的大量数据导入SQL数据库。 CSV的大小为4g。 CSV有329列和300,000多行数据。到目前为止,我已经成功创建了数据库和表,一旦导入就会保存数据。数据包含字符串(VARCHAR(x),数字(INT)和日期(DATE)。
CSV文件中包含的数据由分隔符“,”分隔,但所有数据字段都用双引号括起来,有些字段不包含数据值。下面是数据的模拟示例。
“123244234”,“09/12/2012”,“名字”,“姓氏”,“地址1”,“”,“”,“555-555-5555”,“”,“CountryCode”
在研究中,我确定导入数据的最简单方法是使用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