从工作 SQL 表映射多个布局 - SSIS

Posted

技术标签:

【中文标题】从工作 SQL 表映射多个布局 - SSIS【英文标题】:Mapping multiple layouts from a working SQL table - SSIS 【发布时间】:2020-12-04 14:58:17 【问题描述】:

我有一个平面文件作为具有多种布局的输入:

Client# FileType Data
------- --------  --------------------------------------
Client#1FileType0Dataxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Client#1FileType1Datayyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy  
Client#1FileType2Datazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 
Client#2FileType0Dataxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我计划的工作流程如下:删除临时表 - 加载带有 Client#、FileType、Data 列的 SQL 临时表,然后从那里将我的 32 种文件类型映射到实际的永久 SQL 表。

我的问题是,这是否可行,您将如何进行? 你能从这样的工作表中拆分出 32 个来源吗?使用 SQL 子字符串?我不确定如何从临时表中的不同文件类型映射列,在我的工作流程中使用什么“框”。

【问题讨论】:

【参考方案1】:

您所描述的是一种在数据库中加载数据的非常合理的方法。这个想法是:

创建一个所有列都是字符串的临时表。 使用 SQL 操作将数据加载到最终表中。

这种方法的优点是您可以调试数据库中的任何数据异常,这通常会使事情变得更简单。

您的问题的答案是,以下功能通常在执行此操作时非常有用:

substring() try_convert()

如果“数据”不是固定宽度,这可能会变得更加复杂。在这种情况下,您将不得不使用更复杂的字符串处理。在这种情况下,递归 CTE 或 JSON 功能可能会有所帮助。

【讨论】:

以上是关于从工作 SQL 表映射多个布局 - SSIS的主要内容,如果未能解决你的问题,请参考以下文章

SSIS在Unicode和非Unicode错误之间转换

在不知道工作表名称的情况下使用 SSIS 从 Excel 导入数据

使用 ssis 包导入 excel 到 sql server 失败

使用 SSIS 脚本任务将数据从多个 SQL 表导出到不同的平面文件

SSIS将数据从Excel导出到SQL Server表

SSIS 将数据从 SQL db 复制到同一 excel 目标上的多个选项卡