未插入表中的值 - 从csv批量插入到ms-access

问题描述 投票:0回答:1

我将csv文件中的值批量插入到我的访问表中。事情进展顺利,直到今天我遇到了这个问题,其中访问插入了一个名为BN1的字段所需的所有值。当数据非数字时,它只是将该列保留为balnk。这是产品的批处理名称,在设计中字段类型是备忘录(遗留.mdb文件,因此无法更改)。

我的样本数据:

DATE,TIME,PN1,BN1,CH0,CH1,CH2

2019-02-18,16:40:05,test,prompt,0,294,0

2019-02-18,16:40:14,test,1,700,294,0

因此,在上面的数据中,第一行插入了一个空白值,用于提示,其中第二行正确插入,BN1为1。

我的代码插入数据:

INSERT INTO Log_143_temp ([DATE],[TIME],PN1,BN1,CH0,CH1,CH2
) SELECT [DATE],[TIME],PN1,BN1,CH0,CH1,CH2
 FROM [Text;FMT=Delimited;DATABASE=C:\tmp].[SAMPLE_1.csv]

路径和文件名是正确的,否则它不会插入任何值

ms-access bulkinsert
1个回答
0
投票

嗨,这是我如何解决这个问题,

将查询更改为批量插入到,

INSERT INTO Log_143_temp ([DATE],[TIME],PN1,BN1,CH0,CH1,CH2
) SELECT [DATE],[TIME],PN1,BN1,CH0,CH1,CH2
 FROM [Text;FMT=CSVDelimited;HDR=Yes;DATABASE=C:\tmp].[SAMPLE_1.csv]

然后在包含要导入的csv文件的文件夹中添加名为schema.ini的文件。

schema.ini文件的内容,

[SAMPLE_1.csv]
ColNameHeader=True
Format=CSVDelimited
DateTimeFormat=yyyy-mm-dd
Col1="DATE" Text
Col2="TIME" Text
Col3="PN1" Text
Col4="BN1" Text
Col5="CH0" Double
Col6="CH1" Double
Col7="CH2" Double

现在导入的csv文件没有任何问题。

有关schema.ini的其他信息,请访问以下链接:

https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

© www.soinside.com 2019 - 2024. All rights reserved.