用SQL读取CSV文件

来源:互联网 发布:美工电脑配置清单 编辑:程序博客网 时间:2024/06/14 03:54

用SQL读取CSV文件

1.OLEDB方式连接CSV的字符串写法

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=yourPath;Extended Properties='text;HDR=Yes';FMT=Delimited

2.其中,HDR=Yes是说其中包含列标题

3.FMT=Delimited 是说使用算定义的分隔符

4.需要注意的是:yourPath 是文件夹的路径。假如你的文件路径是E:/aa/bb.csv,那么yourpath应该是E:/aa

5.如何使用自定义分隔符?

1)手动新建一个DSN文件, 用ODBC打卡,创建CSV的连接,在选项中有一个定义格式按钮可以定义间隔符
保存后用文本编辑器打卡DSN文件就可以了

2)在相应的文件夹里新建一个名字为Schema.ini的文件
内容如下:

Schema.ini
----------------------------------

第一行最好留一行空行,否则有可能出错。
[aa.txt]
ColNameHeader=True
Format=CSVDelimited
MaxScanRows=88
CharacterSet=OEM

[bb.txt]
ColNameHeader=True
Format=Delimited(|)
MaxScanRows=88
CharacterSet=OEM

[cc.txt]
ColNameHeader=True
Format=TABDelimited                 
MaxScanRows=88
CharacterSet=OEM

说明:
定义该文件夹内的文件分割方法
aa.txt以逗号分割
bb.txt以|分割
cc.txt以Tab分割

3)用OLEDB读取Txt文本的时候,会检查文件夹内是否有Schema.ini这个文件,如果有就读取相应的定义说明,没有就默认为逗号分隔。


一个例子:
[url.txt]
ColNameHeader=False
Format=Delimited(|)
MaxScanRows=25
CharacterSet=OEM
Col1=TIME Char Width 30
Col2=IP Char Width 20
Col3=MAC Char Width 20
Col4=IP_BI Char Width 20
Col5=HOST Char Width 100
Col6=URL Char Width 230

[mail.txt]
ColNameHeader=False
Format=Delimited(|)
MaxScanRows=25
CharacterSet=OEM
Col1=TIME Char Width 30
Col2=IP Char Width 20
Col3=MAC Char Width 20
Col4=IP_BI Char Width 20
Col5=SENDMAN Char Width 100
Col6=REIMAN Char Width 100
Col7=SUBJECT Char Width 200
Col8=FILENAME Char Width 200

[ftp.txt]
ColNameHeader=False
Format=Delimited(|)
MaxScanRows=25
CharacterSet=OEM
Col1=TIME Char Width 30
Col2=IP Char Width 20
Col3=MAC Char Width 20
Col4=IP_BI Char Width 20
Col5=USER Char Width 32
Col6=PASSWORD Char Width 32
Col7=FILENAME Char Width 250

[QQ.txt]
ColNameHeader=False
Format=Delimited(|)
MaxScanRows=25
CharacterSet=OEM
Col1=TIMEFROM Char Width 30
Col2=TIMETO Char Width 30
Col3=IPFROM Char Width 20
Col4=IPTO Char Width 20
Col5=TYPE Char Width 20

[telnet.txt]
ColNameHeader=False
Format=Delimited(|)
MaxScanRows=25
CharacterSet=OEM
Col1=TIME Char Width 30
Col2=IPFROM Char Width 20
Col3=IPTO Char Width 20
Col4=ORDER Char Width 100