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

Mapping multiple layouts from a working SQL table - SSIS

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

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

我计划的工作流程如下:Drop Temp table -Load SQL temp table with columns Client#, FileType, Data 然后从那里映射我的 32 种文件类型实际永久 SQL table.

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

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

  • 创建一个分段 table,其中所有列都是字符串。
  • 使用 SQL 操作将数据加载到最终 table。

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

你的问题的答案是以下函数通常在执行此操作时非常有用:

  • substring()
  • try_convert()

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