未分配 SSIS 脚本任务变量值

Posted

技术标签:

【中文标题】未分配 SSIS 脚本任务变量值【英文标题】:SSIS script task variable value not being assigned 【发布时间】:2017-12-19 13:13:17 【问题描述】:

我有这个脚本任务,我用它来为字符串变量赋值,以用作平面文件的连接字符串。该变量有一个只包含标题行的空白文件的默认路径,如果该文件存在于我的传入目录中,则脚本应将变量值更改为该文件的路径。我已经创建了一个断点,并逐行检查了该代码行中 files[0] 的值以将值分配给 var,它包含正确的字符串值。不幸的是,脚本退出后变量的值没有变化。我确实将变量检查为读/写而不是只读。有什么想法我哪里出错了吗?

public void Main()

    // TODO: Add your code here

    string incoming = Dts.Variables["User::DirIncoming"].Value.ToString();

    foreach (Variable var in Dts.Variables)
    
        if (var.QualifiedName.StartsWith("User::Conn"))
        
            string varName = var.QualifiedName.Substring(10);
            string[] files = Directory.GetFiles(incoming, varName + "*");
            if (files.Length > 0)
            
                var.Value = files[0];
            
        
    

    Dts.TaskResult = (int)ScriptResults.Success;

【问题讨论】:

【参考方案1】:

我没有意识到我的变量的默认值是通过表达式分配的,因此我需要更改我的表达式而不是我的值。我将有问题的行更改为以下代码,现在一切都很好。感谢大家观看。

var.Expression = $"\"files[0]\"".Replace("\\","\\\\");

【讨论】:

以上是关于未分配 SSIS 脚本任务变量值的主要内容,如果未能解决你的问题,请参考以下文章

如何更新数据流 ssis 中的变量值?

在SSIS脚本组件中创建时,变量不包含回车符

在 Azure Devops 中使用从一个 PowerShell 任务到另一个任务的变量值

Linux拓展之Shell默认变量值

将 Django 变量值分配给 AngularJS

公共变量值未重置