Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在ssis中加载多个文件_Sql Server_Ssis - Fatal编程技术网

Sql server 如何在ssis中加载多个文件

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

我对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
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个或多个表中