【问题标题】:SSIS Package Failed to lock Variable "" for read access with error 0xC0010001 "The variable cannot be foundSSIS 包无法锁定变量“”以进行读取访问,错误为 0xC0010001“找不到该变量
【发布时间】:2011-08-12 20:34:35
【问题描述】:

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

复制任务运行良好,但在重命名包的一部分时出现以下错误。

SSIS 包“XYZ.dtsx”开始。 错误:重命名复制文件时出现 0xC0014054:无法锁定变量“文件名”以进行读取访问,错误为 0xC0010001“找不到变量。在执行包,但变量不存在。变量名称可能已更改或未创建变量。”。

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

【问题讨论】:

    标签: ssis


    【解决方案1】:

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

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

    【讨论】:

    • 变量需要.ToString()结尾System.IO.File.Move(Dts.Variables["User::SourceFileName"].Value.ToString(),Dts.Variables["User::DestinationFileName"].Value.ToString());
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      相关资源
      最近更新 更多