最近在研究fusionpbx,,发现它默认是sqlite,支持mysql,支持odbc。
无奈,我只会MS一族。。。查了很多如何从csv导入sqlserver,,,
几种方案:
1. bulkinsert
2. dts import
3. 自己写一个
上面的方案 ,优缺点都有。
1. 需要自己手动建表,无法自适应csv的动态表结构,,优点是速度快。
2. 只能一个个csv文件导入,优点是动态适应强。
3. 缺点是,要自己写代码,同时各种复杂的数据结构,比如数据里面包含 comma,之类的分隔符,包含换行分隔符,
优点是可以自己控制。
我比较喜欢自己控制问题,故选择第三种。
用C#写了个console程序,支持标准csv文件导入,
第一行作为表结构头,自动生成表格。
支持用双引号分隔数据列,
问题也有,
1. 代码只支持SQLSERVER,这个简单,只要换一个driver就好了。
2. 数据列中包含换行符的话,就无法处理,
我自己大概100多个文件,其中6个无法处理,我用dtsimport手动处理掉。
下载链接如下:
https://pan.baidu.com/s/1hmPcEsdecberKn9tpZ6A0A