Sql server 如何在ssis中加载多个文件
我对ssis很陌生 我想知道下面的情况 如何使用ssis任务将多个文件加载到sql server 我目前正在从事数据仓库的工作。我有一堆文件,每个都在单独的文件夹中Sql server 如何在ssis中加载多个文件,sql-server,ssis,Sql Server,Ssis,我对ssis很陌生 我想知道下面的情况 如何使用ssis任务将多个文件加载到sql server 我目前正在从事数据仓库的工作。我有一堆文件,每个都在单独的文件夹中 the folders are Myfolder ->subfolder_21-03-2009.txt ->Mysubfolder_21-03-2009.txt Myfolder1 ->subfolder_22-03-2009.txt ->Mysubfolder_22-03-2009.txt
the folders are
Myfolder
->subfolder_21-03-2009.txt
->Mysubfolder_21-03-2009.txt
Myfolder1
->subfolder_22-03-2009.txt
->Mysubfolder_22-03-2009.txt
Myfolder2
->subfolder_23-03-2009.txt
->Mysubfolder_23-03-2009.txt
我可以使用ssis中的foreachloop
将子文件夹.*.txt
加载到sql server DB(表1)
现在谁能告诉我如何将mysubfolder.*.txt
加载到Sql server(表2)数据库中
我想在一个进程中将多个文件加载到sql server中
请有人引导我代码>如果是文件目录。使用ForEach循环
容器枚举目录中的所有文件;因为您有子文件夹,所以必须单击“遍历子文件夹”选项。接下来,您需要在ForEach循环
容器中放置一个数据流任务
。在数据流任务中
需要添加一个平面文件源
。然后,您需要在平面文件源
之后添加一个派生列
转换。在派生列中
需要将用于循环目录的变量添加到“派生列名”中;在“派生列”中,将“添加为新列”,并在“表达式”中,使用FindString
表达式或LEFT/RIGHT
表达式的组合从文件名中获取日期。然后,在OLE DB Destination
对象中,需要将派生列映射到SQL Server DB中的相对列
FINDSTRING
:
左/右
:如果是文件目录。使用ForEach循环
容器枚举目录中的所有文件;因为您有子文件夹,所以必须单击“遍历子文件夹”选项。接下来,您需要在ForEach循环
容器中放置一个数据流任务
。在数据流任务中
需要添加一个平面文件源
。然后,您需要在平面文件源之后添加一个派生列
转换。在派生列中
需要将用于循环目录的变量添加到“派生列名”中;在“派生列”中,将“添加为新列”,并在“表达式”中,使用FindString
表达式或LEFT/RIGHT
表达式的组合从文件名中获取日期。然后,在OLE DB Destination
对象中,需要将派生列映射到SQL Server DB中的相对列
FINDSTRING
:
LEFT/RIGHT
:每个文件夹中都有一个“ForEachLoopContainer”循环,以加载表1中的“subfolder.*.txt”
为什么不在每个文件夹中创建第二个“ForEachLoopContainer”循环,以加载表2中的“Mysubfolder.*.txt”
然后将这两个“ForEachLoopContainer”放在序列容器中,就完成了。在每个文件夹中都有一个“ForEachLoopContainer”循环,以加载表1中的“subfolder.*.txt”
为什么不在每个文件夹中创建第二个“ForEachLoopContainer”循环,以加载表2中的“Mysubfolder.*.txt”
然后将这2个“ForEachLoopContainer”放在序列容器中,就完成了。
我目前正在处理数据仓库。我有一堆文件,每个文件都放在单独的文件夹中
看到这一点,你需要参考这一点,你也可以
及
为了回答上述问题,您得到了一个序列容器,它一个接一个地执行任务:
快照1
快照2
您可能想给Mysubfolder.*.txt提供
快照3
在数据流任务中,您可能正在执行此操作
我目前正在处理数据仓库。我有一堆文件,每个文件都放在单独的文件夹中
看到这一点,你需要参考这一点,你也可以
及
为了回答上述问题,您得到了一个序列容器,它一个接一个地执行任务:
快照1
快照2
您可能想给Mysubfolder.*.txt提供
快照3
在数据流任务中,您可能正在执行此操作我想检查是否将3个不同格式的文件加载到3个单独的表中。假设我有3个文件A、B、C,后缀是日期,每天都在变化。这就是我所做的。
创建ForEach循环容器,并设置集合选项卡,如下所示。
让我们使用每个文件连接管理器的表达式使文件名日期部分成为动态的。
最终的软件包如下所示。
瞧!!这些表是从各自的文件加载的。
显然,这可以通过使用Foreach文件枚举器在变量中获取文件的完全限定名,然后编写表达式对其进行解析以将其传递到不同的dft来改进。希望这有帮助。我想检查一下,将3个不同格式的文件加载到3个单独的表中。假设我有3个文件A、B、C,后缀是日期,每天都在变化。这就是我所做的。
创建ForEach循环容器,并设置集合选项卡,如下所示。
让我们使用每个文件连接管理器的表达式使文件名日期部分成为动态的。
最终的软件包如下所示。
瞧!!这些表是从各自的文件加载的。
显然,这可以通过使用Foreach文件枚举器在变量中获取文件的完全限定名,然后编写表达式对其进行解析以将其传递到不同的dft来改进。希望这有帮助。您能给我们看一下软件包/代码吗?每个循环都有一个软件包。Dft使用字符串变量将平面文件加载到db中进行迭代,但需要知道如何制作一个包,分别将2个或多个不同的文件加载到2个或多个表中