如何使用 SSIS 加载 EDI 823 密码箱文件中找到的父子数据?
我必须使用 ssis 将 EDI 823 密码箱文件加载到 SQl 服务器数据库中。谁能告诉我如何处理不同线路之间的父子关系。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我必须使用 ssis 将 EDI 823 密码箱文件加载到 SQl 服务器数据库中。谁能告诉我如何处理不同线路之间的父子关系。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
更新:以下答案仅显示将简单父子数据加载到SQL Server中的示例。
检查此链接,了解如何使用 SSIS 加载实际的
EDI 823 密码箱
文件。这是一个可能的选项,您可以使用它来加载父子/标题详细信息。
在这种情况下,我有一个平面文件,其中包含与国家/地区和州相关的标题详细信息。以
HDR
开头的行表示标题行,以DTL
开头的行表示详细信息。有关示例文件内容,请参阅屏幕截图 #1。分步过程:
dbo.Header
和dbo.Detail
的表。有关这些表的创建脚本,请参阅表
部分。我们将借助此示例 SSIS 包读取平面文件内容来填充这些表。Header
和Detail
。请参阅屏幕截图 #2 以了解应如何放置它们。HeaderCode
的数据类型字符串变量。将值HDR
分配给该变量。请参阅屏幕截图#3。Read File
是一个平面文件源,它被配置为读取屏幕截图#1 中显示的文件。此任务中使用的平面文件连接的配置设置如屏幕截图所示 #5 - #9数据清理
是派生列转换任务并用于删除输入中存在的任何空格。请参阅屏幕截图#10。隔离数据
是一个脚本组件转换任务。当您拖放脚本组件时,选择转换选项。请参阅屏幕截图 #11 以了解如何配置此任务的输入列
。请参阅屏幕截图 #12 以了解如何配置此任务的输入和输出
。输出列IsHeader
的数据类型为 DT_BOOL,输出列 HeaderKey 的数据类型为 DT_STR,长度为 50。选择左侧的脚本
,然后单击编辑脚本...
。将脚本组件中的代码替换为脚本任务组件中使用的代码部分下给出的代码。Multicast
顾名思义就是多播转换任务。它没有任何特殊配置。Fetch Detail
是一个条件分割转换任务。请参阅屏幕截图 #13 配置此任务。Header
是一个 OLE DB 目标,配置为连接到新创建的表 dbo.Header。此任务的字段映射如屏幕截图#14 所示。Staging
是一个配置为写入 CSV 文件的平面文件目标。该连接管理器的配置如屏幕截图#15 - #16所示。暂存连接管理器中有四列。Code
和Value
列的数据类型为 DT_STR,长度为 255;IsHeader
的数据类型为 DT_BOOL;HeaderKey
是长度为 50 的字符串数据类型。Staging
任务的字段映射如屏幕截图 #17 所示。Detail
。Staging
是一个平面文件源,配置为使用在步骤 #11 中创建的Staging
连接管理器。获取标头 Id
是一个配置为指向表 dbo.Header 的查找转换。此任务的列配置如屏幕截图#19所示。Detail
是一个 OLE DB 目标,配置为连接到新创建的表 dbo.Detail。此任务的字段映射如屏幕截图 #20 所示。希望有帮助。
脚本任务组件中使用的代码 (在上面的步骤 #7 中提到):
只能在
C#
代码>SSIS 2008 及更高版本
。。
表格:
。
屏幕截图 #1:
屏幕截图 #2:
屏幕截图 #3:
屏幕截图 #4:
屏幕截图 #5 :
屏幕截图#6:
屏幕截图 #7:
屏幕截图 #8:
屏幕截图 #9:
< img src="https://i.sstatic.net/niykv.png" alt="7">
屏幕截图 #10:
屏幕截图 #11:
屏幕截图#12:
屏幕截图 #13:
屏幕截图 #14:
屏幕截图 #15:
屏幕截图 #16: >
屏幕截图 #17:
屏幕截图 #18:
屏幕截图 #19:
屏幕截图 #20:
屏幕截图 #21:
屏幕截图 #22:
屏幕截图 #23:< /strong>
UPDATE: Following answer shows only an example of loading a simple parent-child data into SQL Server.
Check this link to see how to load an actual
EDI 823 lockbox
file using SSIS.Here is a possible option that you could use to load parent-child/header-detail information.
In this scenario, I have a flat file containing header-detail information pertaining to countries and states. Rows beginning with
HDR
denote header line and rows beginning withDTL
denote detail. Refer screenshot #1 for sample file content.Step-by-step process:
dbo.Header
anddbo.Detail
. Refer sectionTables
for the create scripts of these tables. We will be populating these tables by reading the flat file content with the help of this sample SSIS package.Header
andDetail
. Refer screenshot #2 to see how they should be placed.HeaderCode
. Assign the valueHDR
to the variable. Refer screenshot #3.Read File
is a flat file source and it is configured to read the file shown in the screenshot #1. Configuration settings of the flat file connection used in this task are shown in screenshots #5 - #9Data clean up
is a derived column transformation task and is used to remove any spaces present in the input. Refer screenshot #10.Segregate data
is a script component transformation task. When you drag and drop the script component, select Transformation option. Refer screenshot #11 to see how to configure theInput Columns
on this task. Refer screenshot #12 to see how to configure theInput and Outputs
on this task. Output columnIsHeader
is of data type DT_BOOL and output column HeaderKey is of data type DT_STR with length 50. SelectScript
on the left side and click on theEdit Script...
. Replace the code in script component with the code given under the Code used in the script task component section.Multicast
as the name suggests is a multicast transformation task. It doesn't have any special configuration.Fetch Detail
is a conditional split transformation task. Refer screenshot #13 to configure this task.Header
is a OLE DB destination configured to connect to the newly created table dbo.Header. Field mappings for this task are shown in the screenshot #14.Staging
is a flat file destination configured to write to a CSV file. Configuration of this connection manager are shown in screenshots #15 - #16. There are four columns in the Staging connection manager.Code
andValue
columns are of data type DT_STR with length 255;IsHeader
is of data type DT_BOOL;HeaderKey
is of data type string with length 50. Field mappings forStaging
task are shown in screenshot #17.Detail
.Staging
is a flat file source configured to use theStaging
connection manager created in step #11.Get Header Id
is a lookup transformation configured to point to the table dbo.Header. Column configuration of this task is shown in screenshot #19.Detail
is a OLE DB destination configured to connect to the newly created table dbo.Detail. Field mappings for this task are shown in the screenshot #20.Hope that helps.
Code used in the script task component (Mentioned in step #7 above):
C# code that can be used only in
SSIS 2008 and above
..
Tables:
.
Screenshot #1:
Screenshot #2:
Screenshot #3:
Screenshot #4:
Screenshot #5:
Screenshot #6:
Screenshot #7:
Screenshot #8:
Screenshot #9:
Screenshot #10:
Screenshot #11:
Screenshot #12:
Screenshot #13:
Screenshot #14:
Screenshot #15:
Screenshot #16:
Screenshot #17:
Screenshot #18:
Screenshot #19:
Screenshot #20:
Screenshot #21:
Screenshot #22:
Screenshot #23: