返回信息流有个列数达将近达2000的很大CSV文件,没有字段名,能否在SSIS中直接提前其奇数列。
尝试过和一个只有字段名且只有奇数列字段名的CSV文件做Union All操作,但是流程到一半就出错。。。进程被迫停止。。。提示好像是最后一列分割有关。。。很迷惑。。。
高人请指点啊。。。
这是一条镜像帖。来源:北邮人论坛 / database / #6520同步于 2012/4/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
SQl Sever
wanghongna
2012/4/27镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
如果无法保证该文件每列都合法,并且对性能要求不是很苛刻的话,建议自己写段代码,读取每一行,校验其列数是否合法,并提取奇数列,存一个临时文件,然后再用SSIS直接导入,或者使用BCP/bulk insert 批量插入表中后,再进行下一步操作
【 在 maple0371 的大作中提到: 】
: 如果无法保证该文件每列都合法,并且对性能要求不是很苛刻的话,建议自己写段代码,读取每一行,校验其列数是否合法,并提取奇数列,存一个临时文件,然后再用SSIS直接导入,或者使用BCP/bulk insert 批量插入表中后,再进行下一步操作
为什么我若给这个CSV文件加上字段名,然后提取奇数列就能实现呢。。。
【 在 maple0371 的大作中提到: 】
: 如果无法保证该文件每列都合法,并且对性能要求不是很苛刻的话,建议自己写段代码,读取每一行,校验其列数是否合法,并提取奇数列,存一个临时文件,然后再用SSIS直接导入,或者使用BCP/bulk insert 批量插入表中后,再进行下一步操作
初学者,不知道怎么写代码进行校验,如果校验完成的话,想要保留这一行,那么要对这一行进行怎么怎样的处理呢。。。
能不能指点一下。。。谢谢喽。。。
校验完成后,把所有校验通过的行提取其中的奇数列,存成一个文件,然后再将这个文件导入到数据库中
结果是一个N行的文件,1000列,写JAVA代码实现吧
再者,你建一张2000列的表,然后把数据全部导进去,然后通过读取数据库的表的元数据,获取ID为基数的字段,然后从该表中提取奇数列,不过初学者的话,可能困难点,但是效率会高一些
【 在 maple0371 的大作中提到: 】
: 校验完成后,把所有校验通过的行提取其中的奇数列,存成一个文件,然后再将这个文件导入到数据库中
: 结果是一个N行的文件,1000列,写JAVA代码实现吧
: 再者,你建一张2000列的表,然后把数据全部导进去,然后通过读取数据库的表的元数据,获取ID为基数的字段,然后从该表中提取奇数列,不过初学者的话,可能困难点,但是效率会高一些
第二种方法尝试过,但是好像是SQl server中的表不能放下那么多列吧。。。