TXT文件导入sql数据库时分隔符控制

小结:

Txt文本文件分隔符format有多种。例如:逗号,分号,制表符等

详细参考 :http://msdn.microsoft.com/en-us/library/ms709353%28VS.85%29.aspx

直接用jet引擎导入,例如:

SELECT  *
INTO    jiaofei
FROM    OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
                   'Text;HDR=YES;FMT=TabDelimited;DATABASE=F:\'
, jiaofei#txt)
 --aa#txt是文本文件名aa.txt 

其中:“text;HDR=Yes;FMT=TabDelimited”;

hdr=yes 意思是首行是否包含列名称

FMT=TablDelimited 意思是格式的分割限定

实际导入时,发现源文件是使用”制表符“分隔的,但导入后没有分隔。

经查资料,发现如下两种解决方案:

方案一:修改注册表。

修改注册表中:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Text “format”的键值

默认的分隔符为CSV分隔“,”文件是制表符分隔的,那么就要把”format”的键值改成“Tabdelimited”

方案二:增加Schema.ini来订制格式

数据类型, Schema.ini 必须与txt或者csv文件在同一目录下才能生效。

Schema.ini 内容

[test1.txt]
Format=TabDelimited
ColNameHeader=True
MaxScanRows=0
CharacterSet=ANSI
a=F1 Char Width 3
b=F2 Char Width 10
c=F3 Integer

此条目发表在日记分类目录,贴了, 标签。将固定链接加入收藏夹。

TXT文件导入sql数据库时分隔符控制》有2条回应

  1. 嘉卓说:

    不太懂~这么做的目的是很忙啊

  2. AVENT说:

    来关注一下,好棒的文章,支持了…

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据