【问题标题】:Converting String into table using SSIS使用 SSIS 将字符串转换为表
【发布时间】:2015-09-08 09:44:39
【问题描述】:

我正在使用 SSIS,我希望我的字符串变成一个表格。 我使用的字符串来自数据库,我想提取它并制作另一个表,而不是字符串,它应该在适当的表中。 我想知道我应该使用什么转换以及如何使用。

这是我的示例字符串

第 1 列:第 1 行 |第 2 列:第 2 行 | Column3:Row3 等等..

输出应该是一个表,column1是column,他的数据是row1等等......

列 1 列 2 列 3
第1行......第2行......第3行

(我不太确定 SSIS 是否可以做到这一点,但我认为它可以 xD)
更新
另一个示例字符串:(如果字符串有 2 个标题但值不同怎么办?)
"Column1:Row1 | Column2:Row2 | Column3:Row3 | Column1:Row4|"

输出:
列 1 列 2 列 3
第 1 行......第 2 行......第 3 行
第 4 行........空............空

感谢任何帮助!

【问题讨论】:

  • 它可以做到这一点,但我建议你用纯 T-SQL 代替。您的示例数据不是表格。如何定义第 1 行第 2 列的值?将其添加到您的示例中。
  • 我有这张表,其中列是 ProcessName 和 Processbody,在 processname 下是 Overtime 或 Leave,然后跟随 processbody,它是字符串,就像我发布的字符串一样。我想为加班和请假创建两个新表,所以我希望修复字符串。该字符串完全保存在我的表中(列名:数据|列名:数据......)
  • 您应该使用执行 SQL 任务,并执行将构建您想要的表的 sql 命令。
  • 您能否在解释中添加表格形式的数据应该是什么样的?列的数量和名称是否固定?值列 1 行 2 是如何定义的?
  • @Nick.McDermaid 好的,例如,加班,我将为加班创建一个新表,其值为长字符串 (C=R | C=R,) C 作为新列,然后 R 作为他的数据,然后 |充当另一列的(分隔符)分隔符。是的,我获取的字符串是固定的,以防它只是保存为 (C=)。我使用 (=) 分隔列和行。有没有办法将 C 定义为 Column 并将 =R 定义为他在 SSIS 中的数据?我唯一做的就是为加班和离开创建一个单独的表,但我仍然保存的数据是原始字符串,所以我需要把它做成一个表。谢谢

标签: ssis business-intelligence


【解决方案1】:

在数据流中转换数据的两种常用方法是使用 Data 转换转换以执行简单的转换或使用 派生列转换以创建基于的列 转换的数据。

【讨论】:

    【解决方案2】:

    您可以在 ssis 派生列中使用标记表达式 (technet link)。

    使用类似下面的内容作为表达式

    TOKEN("COLUMN1","|",1)
    

    给你第一个结果

    TOKEN("COLUMN1","|",)
    

    给你第二个结果等等。

    在 SSIS 中最简单的方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2022-10-14
      • 1970-01-01
      相关资源
      最近更新 更多