【问题标题】:Store filename in variable and create tables with the filename in SSIS将文件名存储在变量中并使用 SSIS 中的文件名创建表
【发布时间】:2014-03-20 07:38:54
【问题描述】:

我在 SSIS 的一个文件夹中有几个 excel 源文件。我想从这些 excel 文件中提取数据并加载到 SQL 表中。 我的问题是我想一一保存所有文件名,并想创建与文件名完全相同的 SQL 表 然后想将每个excel文件加载到相应的表中。 请帮助我如何为此创建一个包。

【问题讨论】:

    标签: sql ssis


    【解决方案1】:

    Jayvee 已经呈现了足够好的高级视图!让我补充一点细节。

    我假设您有动态 Excel 文件连接。

    1. 声明一个变量并将其命名为 FileName。并为其分配文件夹中可用的第一个文件名。

    2. 放置 Foreach 循环容器 并双击它。指定 Folder:Files:,如下图所示。

    3. 在同一个 Foreach 循环编辑器中,转到变量映射。从下拉列表中选择变量。这与我们在第一步中定义的变量相同。将其 Index 设置为 0。点击确定

    4. 剩余任务与 Jayvee 解释的相同。

    请参阅this 链接以获取更多帮助。这是Result Set Property Not Set Correctly。我认为将 ResultSet 属性设置为 SingleRow 就可以了。

    【讨论】:

    • 谢谢..我已经这样做了,但我仍然收到错误..这就是我在执行 Sql 任务中所做的..我的 Sql 语句就像这样创建表? (Id Int, Name varchar(20) ) 这很好还是我遗漏了什么?
    • 然后我在参数映射中映射 User::FileName 变量
    【解决方案2】:

    你的控制流应该是这样的:

    【讨论】:

    • 谢谢。。请您详细解释一下,在执行 SQL 和数据流任务中我需要设置哪些属性?
    • 以及如何在 OLEDB 目标中动态设置表名?
    • 为每个容器读取文件夹并使用文件名更新变量。执行sql根据变量创建表。数据流加载文件。我假设你知道文件的结构。还有其他使用重命名和/或脚本任务的选项,取决于您的要求。
    • 实际上我正在尝试同样的事情,但是在创建表时执行 SQl 任务中出现错误。我收到类似“结果集不正确”的错误。请您告诉我在执行 SQL 任务中我们需要更改哪些属性?
    • 如果您只是创建表,您的结果集属性应设置为无
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多