我创建了一个包并添加了一个数据流任务,该任务从数据库读取数据并创建一个平面 xml 文件。然后它将文件存储在我给定的路径中,并且执行进程任务将其上传到远程服务器。下面是结构的样子:
数据流任务是这样的:
执行流程任务如下:
所以它们现在都工作正常,因为我有数据流平面文件进程和执行进程任务的绝对目录路径。
但是我想做的是删除绝对路径并使用 package.dtsx 文件根文件夹的相对路径代替所有可执行文件,存储平面 xml 文件等。
所以在网上研究了这两个链接之后here和 here事实证明非常有帮助。我创建了一个变量和脚本任务,如上面的第一个屏幕截图所示。脚本任务的详细信息是:
下面是脚本任务的主要功能:
添加变量后,我可以在包属性中看到变量 PackagePath 被分配了一些值,如下所示 \Package\task-name
:
但我不确定那是什么路径以及如何到达根目录或将根目录路径分配给变量。
我是 SSIS 新手,所以不确定我是否做错或遗漏了什么。最近几天一直在努力弄清楚。任何帮助表示赞赏。
最佳答案
要在执行流程任务中使用变量,您必须使用表达式,打开执行流程任务
编辑器,转到表达式选项卡并编写表达式。
详细示例可以引用这篇文章:
您还可以在以下位置阅读有关执行流程任务
和编写表达式的更多信息:
注意:右键单击“执行流程任务”并选择“属性”。在属性窗口中,您将看到一个当前设置为 False
的 DelayValidation
选项,将其翻转为 True
。
关于sql-server - 在SSIS数据流任务和执行流程任务中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47981221/