使用源oracle在列中搜索字符串并获取14个字符以用于informatica中的所有事件

时间:2019-05-24 10:50:18

标签: informatica informatica-powercenter informatica-powerexchange

我的来源是Oracle数据库。我的源列之一包含如下所示的数据。 我应该搜索联系人:并获取所有出现的14个字符。

源列数据:

contact:"abcd"/Location:"India"/contact:"efgh"/Gender:"Male"/contact:"ijkl"/email:"ijkl@gmail.com"

以此类推。...

必填输出:

contact:"abcd",contact:"efgh",contact:"ijkl"

1 个答案:

答案 0 :(得分:0)

请为您的问题找到以下查询。 我已在Tera数据中写过此查询,如果您使用的是其他数据库,请相应地更改功能。

我遵循了从数据集中删除与联系人无关的数据的方法。

with tab as(select 'contact:"abcd"/Location:"India"/contact:"efgh"/Gender:"Male"/contact:"ijkl"/email:"ijkl@gmail.com"' as val)
select oreplace(oreplace(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3),','),(substr(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3) ,','),
index(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3) ,','),'/Gender:'),
index(oreplace(val, substr(val,index(val,'/Location:'),index(val,'/Location:')+3) ,','),'/Gender:')-15)),','),
substr(val,CHARACTER_LENGTH(val)-22),'') as output from tab;