无法评估表达式。发生错误,通常表示安装损坏(代码0x80004002)

时间:2017-04-20 14:51:10

标签: sql-server visual-studio-2015 ssis sql-server-2016

我使用Visual Studio 2015SQL Server 2016,我也使用COZYROC组件进行SSIS处理。

我在SFTP中移动两个文件夹之间的所有文件。为了那个原因。我创建了一个带有对象数据类型的变量(V_FilesNameList)。然后,我使用COZYROC SFTP Task获取SFTP服务器上的文件名列表:

enter image description here

这是上面组件的配置:

enter image description here

然后,我在我的变量(V_FilesNameList)上创建了一个foreach循环。 在循环内部,我想更改每个文件的名称并将其复制到新地址。

enter image description here

enter image description here

但我有这个错误:

Error: ForEach Variable Mapping number 1 to variable 
    "User::V_File_Name_Old" cannot be applied.
Error: ForEach Variable Mapping number 919997528 
     to variable "껤ʧ" cannot be applied.

当我想在Watch窗口中观察我的变量(V_FilesNameList)中的值时,我有这样的错误:

    V_FilesNameList Unable to evaluate the expression. An error occurred 
      that usually indicates a corrupt installation (code 0x80004002). 
    If the problem persists, repair your Visual Studio installation via 
       'Add or Remove Programs' in Control Panel.   

为什么我有这些错误?如何使用SSIS在SFTP服务器中的两个文件夹之间移动文件?

3 个答案:

答案 0 :(得分:1)

  

如何在SFTP服务器中的两个文件夹之间移动文件   SSIS?

  1. 将文件(文件传输任务CozyRoc)下载到某个文件夹内的文件系统(可配置的项目参数)
  2. 现在使用Foreach循环容器(Set Enumerator - > ForEach File Enumerator )获取每个文件的完整文件路径。
  3. 使用文件传输任务将文件移动到SFTP。
  4. 使用文件系统任务删除本地文件夹中的所有文件(在步骤1中下载文件的位置)。

答案 1 :(得分:0)

检查Variable Mappings中的foreach loop container,如果对象V_FilesNameList包含文件名列表字符串,则Variable Mappings中的变量应位于{{1}数据类型,以便它们可以正确映射。我猜你的映射变量string设置不正确。

答案 2 :(得分:0)

当我使用ForEach循环容器时,我遇到了错误to variable "껤ʧ" cannot be applied。问题在于ResultVariable中的NULL。尝试处理从源返回的NULLS。在我的例子中,对象变量是从查询中填充的,所以我所要做的就是使用ISNULL sql函数。