阅读txt文件,并保存到表中的SQL Server
我有一个txt文件,我的txt文件有27000000,我想读此文件并保存在SQL Server表
我用这个SQL服务器T-SQL
:
阅读txt文件,并保存到表中的SQL Server
BULK
INSERT Employee
FROM 'E:\\file.txt' --location with filename
WITH
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
,我的文件是:
66200 6827 435200 1393/05/23 14:26:26 18 1
66200 6819 435200 1393/05/23 14:28:45 113 1
但我的文件结构是:
66200<space>6827<space space>435200<space>1393/05/23<space space>14:26:26<space space space>18
66200<space>6819<space space>435200<space>1393/05/23<space space>14:28:45<space space space>113 <br>
在散装块我写这个字段终止
:
FIELDTERMINATOR = ' ',
和我的文件埃夫里的时间有两个空格字符,每一次具有第三character.and散装不行
但我想读这个文件。
我该怎么做?
创建一个格式文件是这样的....
10.0
6
1 SQLINT 0 4 " " 1 Col1 ""
2 SQLCHAR 0 100 " " 2 Col2 SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 100 " " 3 Col3 SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 100 " " 4 Col4 SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 0 100 " " 5 Col5 SQL_Latin1_General_CP1_CI_AS
6 SQLCHAR 0 100 "\r\n" 6 Col6 SQL_Latin1_General_CP1_CI_AS
将文件另存为.fmt
,更换Col1中,col2的,COL3 .....在你的表中的实际列名。
那么你会写你的Insert语句类似...
BULK INSERT Employee
FROM 'E:\file.txt' --location with filename
WITH
(
FORMATFILE = 'E:\Format_file.fmt' --path to your format file.
);
谢谢注意我的问题,但我有一个错误 – 2014-11-02 05:28:22
Msg 4862,Level 16,State 1,Line 1 由于文件“d:\ format.fmt”不完整或无法读取,无法批量加载。操作系统错误代码(空)。 – 2014-11-02 05:30:17
@behzadrazzaqi我的猜测是,它失败了,因为你有七列,格式文件只指定六。为最终的“1”添加一个定义。 – 2014-11-02 11:57:47
你为什么不更换空单双层空间的所有occurence?有任何限制吗? – knkarthick24 2014-11-01 12:25:32
我如何取代27000000条记录? – 2014-11-01 12:25:59
查找并替换你试过并失败了吗? – knkarthick24 2014-11-01 12:27:30