1

我想将数据从 excel 表单导入到 informatica,最后插入到 DB 表中。excel中的数据是键:值格式(例如名称:“xyz”(在下一个右侧单元格中))我如何导入该数据,使“名称”成为列名,“xyz”成为数据在 informatica 源中?

4

3 回答 3

0

这是你的答案:

首先创建一个临时表,例如TMP_RAW_DATA一列。将所有值按原样加载到该表中。现在TMP_RAW_DATA table使用 sql 将你的表加载到你的新表中

将单个原始数据中的列分离为多个列,然后将它们加载到新表中。

 SELECT 
        regexp_substr(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(value,'[A-Za-z0-9_-]+:',''), '(" ")+', '","'), '"', ''), '[^,]+', 1, 1) as COL_ONE,
        regexp_substr(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(value,'[A-Za-z0-9_-]+:',''), '(" ")+', '","'), '"', ''), '[^,]+', 1, 2) as COL_TWO,
        regexp_substr(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(value,'[A-Za-z0-9_-]+:',''), '(" ")+', '","'), '"', ''), '[^,]+', 1, 3) as COL_THREE 
 FROM  TMP_RAW_DATA 

您将有两个映射

  • 一种用于将原始数据按原样加载到一列中
  • 两个用于从 TMP_RAW_DATA 表加载到新表

db <> 小提琴

于 2020-03-05T08:13:34.127 回答
0

Excel文件不能先保存为CSV是否有原因?如果没有,您将使用 Excel 连接器。然后,您需要将行转换为列。有几种方法。谷歌他们或搜索 Informatica 网络。

于 2020-03-03T09:08:18.933 回答
0

据我了解,您想将 excel 文件中的 {Name:value} 对转换为 Informatica Source 中的 {Column:Row} 我已从您的语句中明确输入;您还可以提出您的输出以进行更多说明吗?

输入名称 1:“值 1” 名称 2:“值 2” 名称 3:“值 3” 名称 3:“值 4”

现在,如果您想在将文件导入 informatica 之前对其进行转换;Excel中有多个函数可以执行Like(VLOOKUP,XLOOKUP),如果可以的话,请尝试探索这些函数。

请参考下面拆分您的值: https ://www.excelfunctions.net/split-string-in-excel.html

或者还有另一种方法可以执行 1. 将 Excel 文件导入到 informatica 源中,单列中没有更改 2. 使用表达式转换 - 您可以使用正则表达式将 {name:value} 对拆分为 {Column:row}(请参阅来自谷歌的关于枢轴的 infa 示例工作流)

它也可以帮助输出格式。

谢谢

于 2020-03-03T19:05:34.340 回答