我想做的事情有很多方面,但我认为学习一件可以让我得到其余的。
我有一个 SSIS 包,它使用 powershell 下载一个公开可用的 zip 文件,一个使用 7zip 解压缩的执行脚本,然后数据流将解压缩的文件加载到相应的表中。
我想要做的是将文件名(以及最终文件的其他方面,如创建日期、记录计数等)从任何一个解压缩文件添加到日志表中,该日志表跟踪文件的摘要级别详细信息.
如何将此类信息动态存储为包的一部分?派生列?但是输入是什么?谢谢!
我想做的事情有很多方面,但我认为学习一件可以让我得到其余的。
我有一个 SSIS 包,它使用 powershell 下载一个公开可用的 zip 文件,一个使用 7zip 解压缩的执行脚本,然后数据流将解压缩的文件加载到相应的表中。
我想要做的是将文件名(以及最终文件的其他方面,如创建日期、记录计数等)从任何一个解压缩文件添加到日志表中,该日志表跟踪文件的摘要级别详细信息.
如何将此类信息动态存储为包的一部分?派生列?但是输入是什么?谢谢!
您可以在循环文件时使用变量来存储文件名,并且在文件加载到表后,您可以使用当前文件名插入/更新日志表。
看其他帖子就知道了。我不得不扩大参数大小......轻松修复!
通过 SSIS 动态处理文件有很多选项。以下是一种方法的概述。当然,这可能会有所不同,具体取决于您的具体需求和要求。
Directory
表达式的参数或变量来设置文件夹属性。也可以通过选中“遍历子文件夹”复选框或使用“文件Recurse
夹”字段等表达式来设置搜索子文件夹。*
将匹配任意数量的字符。例如,*.csv
无论名称如何,都将获取所有 csv 文件,
Test*.txt
并将返回名称以 Test 开头的所有 .txt 文件,无论后面有多少或哪些字符。要将其限制为单个字符,请使用?
. 该FileSpec
表达式将允许通过变量或参数将其动态设置为类似于目录。Fully Qualified
将保存完整的文件路径,Name and Extension
将返回带有扩展名的文件名,并且Name Only
只是文件名。FileInfo
类提供了用于查找有关文件的详细信息的选项,例如创建日期、上次访问文件的时间以及最近写入文件的时间。可以在此处找到有关此的附加信息。ConnectionString
连接管理器的表达式,将允许您动态循环每个文件。如果您决定这样做,请确保该Fully Qualified
选项用于“检索文件名”字段。您还需要提前为 Connection Manager 配置正确的列和数据类型。对于 Excel 文件,可以遵循相同的过程,但是将在ExcelFilePath
表达式中使用具有文件名的变量。?
是参数标记(假设这是一个 OLE DB 连接)。在此之后,使用“参数映射”窗格映射存储文件名的相同变量/参数。将方向设置为 Input,适当的数据类型(可能VARCHAR
/ NVARCHAR
),在 Parameter Name 字段中设置 0 表示这是 SQL 语句中的第一个参数(附加?
可以用于SQL语句中的后续参数,然后根据该字段递增),默认参数大小可以保留为-1。同样,这是一个简单的示例,您可能希望存储有关文件及其内容的更多信息,但这可以帮助您入门。示例 SQL 插入:
INSERT INTO YourDataBase.YourSchema.YourTable (ColumnToHoldFileName)
VALUES (?)