如何在不使用FIELDTERMINATOR的情况下通过SQL批量插入

时间:2012-12-12 12:49:21

标签: sql-server-2000


我想从.dat文件批量插入数据。
但问题是文件不包含任何可以分隔不同值的字符。
实际上该文件包含由考勤机生成的代码,代码如下所示 31201201100915000100000043210001
31201205301806000200000043210011
 
2线以上是员工1天出勤 4321 ,第1行是TimeIn& amp;第二行是TimeOut的输入,
详情如下

31 - 机器代码
2012年 - 年 01 - 月
10天
09 - 小时
15 - Min
0001-输入或输出(输入为0001,输出输出为0001) 0000000061 - EmployeeCode
0001-端子号(端子输入0001,输出端子输出0011)
 
我可以批量导入这个文件吗?如果是的话怎么样?任何人都可以告诉我如何解决这个问题?

感谢

即时使用SQL Server 2000 :(

2 个答案:

答案 0 :(得分:0)

您需要使用BULK INSERT或BCP将数据放入登台表,然后使用SUBSTRING()和CAST()/ CONVERT()函数解析列。

答案 1 :(得分:0)

使用Environment.Newline sperator

将dat文件读入字符串
string[] Lines = System.IO.ReadAllLines("dat.file");

然后为每一行做一些

的事情
Int MachineCode = Lines[0].SubString(0,2);
Int Year = Lines[0].SubString(2,4);