SSIS包无法锁定变量“”以进行读取访问,错误为0xC0010001“无法找到该变量

时间:2011-04-26 08:13:36

标签: ssis

我正在创建一个SSIS包,用于将文件从源复制到目标,然后在目的地重命名日期和时间戳。

复制任务工作正常但是当重命名包的一部分时,我收到了以下错误。

  

SSIS包“XYZ.dtsx”开始。   错误:重命名复制文件中的0xC0014054:无法锁定变量“文件名”以进行读访问,错误为0xC0010001“无法找到变量。当在执行期间尝试从容器上的Variables集合中检索变量时,会发生这种情况。包,变量不在那里。变量名可能已经改变,或者没有创建变量。“。

     

错误:0xC002F304重命名复制文件,文件系统任务:出现以下错误消息时出错:“无法锁定变量”文件名“用于读取访问,错误0xC0010001”无法找到该变量。当在程序包执行期间尝试从容器上的Variables集合中检索变量时,会发生这种情况,并且变量不存在。变量名称可能已更改或未创建变量。“   ”。   错误:重命名复制文件时出现0xC0024107:任务验证期间出错。   警告:Copy_RenameAirtricityDB上的0x80019002:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功,但引发的错误数(5)达到允许的最大值(1);导致失败。当错误数达到MaximumErrorCount中指定的数量时,会发生这种情况。更改MaximumErrorCount或修复错误。   SSIS包“Copy_RenameAirtricityDB(1).dtsx”完成:失败。

2 个答案:

答案 0 :(得分:3)

移动文件并避免需要虚拟源和目标连接和表达式的直接方法是使用脚本任务:

System.IO.File.Move(Dts.Variables["User::SourceFileName"].Value,Dts.Variables["User::DestinationFileName"].Value);

答案 1 :(得分:1)

我通过设置我的源码和放大器解决了这个问题。文件系统任务上的目标连接为“IsSourcePathVariable = False”。创建了两个新的(平面文件,在我的情况下)连接,并且连接字符串设置为等于我的变量。看来变量在传递给文件系统任务时只被视为文本字符串,而不是文件/文件夹位置