又是一月过去了,这一段时间以来出差出得我心烦。越来越怀念一直做技术的时光了,刚好公司这边有一个合作项目是我刚进来时做过的事情,拿了过来练练手,顺便将C#的开发继续温习一下。其实在这两年开始做产品运营以来,我一直没有放弃对技术的兴趣与追求,也一直在业余不断的学习跟进与实践。从去年下半年开始,将开发的数据库升级到了SQL SERVER 2005,一切都还较顺利,比较平滑的从SQL Server 2000上过度了过来,最近所开发的项目需要定时从Oracle中导入数据至SQL Server中,采用的方式是使用计划作业通过DTS包导入数据的方式。过去都是直接在SQL Server中采用DTS,没有将DTS包导出,这次因为一些原因需要将包导出再在作业步骤中调用它,问题就出在这个环节。具体情况如下描述:
在保存SSIS包时,选择文件系统,包保护级别默认是:使用用户密钥加密敏感数据,
这样导出到文件xxx..dtsx之后,双击直接运行点“执行”,能成功完成数据导入的流程,不会产生任何错误。
但是一旦在作业步骤中添加该包来执行就会报错,主要错误信息为:
错误: 0xC004700C,位于 数据流任务, 。。。。。。 一个或多个组件未能通过验证。
错误: 0xC0024107,位于 数据流任务: 任务验证期间出错。
因为当时没有截屏,只记得大概是这个,在网上搜了一下有很多人碰到了类似的问题。于在通过查阅最终的原因是在包保护级别的选项,如果需要通过作业来调用该SSIS文件包,需要将包保护级别设置为:使用密码加密敏感数据。
在密码框中键入你需要设定的密码,在建立作业步骤的时候会需要你输入该密码,以后执行时不会需要再输入。
按此步骤,数据能成功能过作业步骤调用,通过设定的计划,就能定时从Oracle中导入数据至SQL Server 中了。
解决此问题MSDN的台湾论坛给了我帮助与启发。
tim_hsu网友的提供了解决这个问题的答案,在此非常感谢。以下为该帖子的链接。