我想将数据从 excel 表单导入到 informatica,最后插入到 DB 表中。excel中的数据是键:值格式(例如名称:“xyz”(在下一个右侧单元格中))我如何导入该数据,使“名称”成为列名,“xyz”成为数据在 informatica 源中?
3 回答
这是你的答案:
首先创建一个临时表,例如
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 表加载到新表
Excel文件不能先保存为CSV是否有原因?如果没有,您将使用 Excel 连接器。然后,您需要将行转换为列。有几种方法。谷歌他们或搜索 Informatica 网络。
据我了解,您想将 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 示例工作流)
它也可以帮助输出格式。
谢谢