none
SQL 2005 SSIS 导入不固定列数的CSV文件 RRS feed

  • 问题

  • 要导入SQL SERVER数据库的数据源是不固定列数的CSV文件,

    不会SSIS,请高手指点指点

    谢谢!


    既然选择了远方,便只顾风雨兼程!

    2012年7月4日 2:15

答案

  • 既然不固定列数,那目标表结构也是无法确定。不一定用SSIS。
    有一个CSV格式的组件,先转化成DataSet,再导入到库中。
    http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader


    God help those who help themselves(助人等于自助). 3w@live.cn

    • 已标记为答案 威_ 2012年7月4日 7:46
    2012年7月4日 2:40
  • 脚本组件里面,你可以写 c# 或者 vb.net 代码,然后通过 oledb 的方式把 csv 文件读到 datatable,  这个你可以随便在网上搜索一下 .net 读取 csv 到 datatable 就行了

    datatable 到 sql sever, 你可以通过 sqlbulkcopy 或者自己喜欢的方式,这个也是从网上搜索一下,很多的

    • 已标记为答案 威_ 2012年7月4日 7:46
    2012年7月4日 7:41

全部回复

  • 既然不固定列数,那目标表结构也是无法确定。不一定用SSIS。
    有一个CSV格式的组件,先转化成DataSet,再导入到库中。
    http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader


    God help those who help themselves(助人等于自助). 3w@live.cn

    • 已标记为答案 威_ 2012年7月4日 7:46
    2012年7月4日 2:40
  • 谢谢,

    暂时不考虑用.NET程序,实在不行的话,再用,现在考虑用ETL,然后做自动化JOB。

    因为是列转行,所以导致列数不固定。

    最终目标表是固定格式的,我现在就是不知道如何导到数据库里,我就想,根据CSV新建临时表,

    只要能进数据库临时表,我就可以后续处理了。


    既然选择了远方,便只顾风雨兼程!

    2012年7月4日 3:46
  • 这个一般用 ssis 中的平面文件数据源,这个是固定列数的,它与后面的导入相关,会要求先定义好源和目标的列映射关系的

    SSIS 中有脚本组件,你可以考虑在里面写程序代码做动态列数的(当然,这样就变成和程序差不多了,只是如果还涉及在SSIS中的其他操作的话,这样配合 程度比较高)

    2012年7月4日 4:18
  • 这个一般用 ssis 中的平面文件数据源,这个是固定列数的,它与后面的导入相关,会要求先定义好源和目标的列映射关系的

    SSIS 中有脚本组件,你可以考虑在里面写程序代码做动态列数的(当然,这样就变成和程序差不多了,只是如果还涉及在SSIS中的其他操作的话,这样配合 程度比较高)

    我要根据CSV文件来建临时表,或者把CSV列转行后变成标准格式,然后进数据库

    脚本组件能实现吗?能的话,再给点提示。

    谢谢!


    既然选择了远方,便只顾风雨兼程!

    2012年7月4日 5:47
  • 脚本组件里面,你可以写 c# 或者 vb.net 代码,然后通过 oledb 的方式把 csv 文件读到 datatable,  这个你可以随便在网上搜索一下 .net 读取 csv 到 datatable 就行了

    datatable 到 sql sever, 你可以通过 sqlbulkcopy 或者自己喜欢的方式,这个也是从网上搜索一下,很多的

    • 已标记为答案 威_ 2012年7月4日 7:46
    2012年7月4日 7:41
  • 脚本组件里面,你可以写 c# 或者 vb.net 代码,然后通过 oledb 的方式把 csv 文件读到 datatable,  这个你可以随便在网上搜索一下 .net 读取 csv 到 datatable 就行了

    datatable 到 sql sever, 你可以通过 sqlbulkcopy 或者自己喜欢的方式,这个也是从网上搜索一下,很多的

    谢谢!


    既然选择了远方,便只顾风雨兼程!

    2012年7月4日 7:46