ODI 11g中的Regexp功能

时间:2015-12-10 18:28:55

标签: function oracle-data-integrator regexp-substr

我在表格中有一个数据

ID  Service                 Amount
1   Mpesa,Credit,topup,App  2000
2   Credit,topup,App        1000
3   Topup,App               500

我需要输出

ID  Service Amount
1   Mpesa   2000
1   Credit  2000
1   topup   2000
1   App     2000
2   Credit  1000
2   topup   1000
2   App     1000
3   Topup   500
3   App     500

这将在ODI 11g中实现,请帮我继续这个案例。 RegEXp函数将是必要的,但需要了解REGEXP函数如何在ODI 11g中实现。

谢谢, Gowtham Raja S

2 个答案:

答案 0 :(得分:0)

您要解决的问题是"将分隔的列拆分为多行"。纯REGEXP_SUBSTR是不够的。 AskTom上描述了非常相似的任务。

很难从ODI本地做到这一点。 ODI最简单的方法是创建一个VIEW(参见上面的链接),然后实现映射。

UPD: Additioaly查看similar question

答案 1 :(得分:0)

使用此查询,您可以实现所需的目标:

SELECT SUBSTR(columnname, 1, INSTR(columnname,',') - 1) FROM tablename;

因此您可以在“映射”列中使用substr:

SUBSTR(Service, 1, INSTR(Service,',') - 1

还有另一种在ODI 11g中应用regexp_substr和窗口函数的方法,但是它需要自定义编辑的知识模块,因此这是一种变通方法,可以在这种情况下完成工作