如何编写 Oracle sql like java split 函数?

How to write an Oracle sql like java split function?

现在我想写sql,如果我传了Aaron这样的关键字,那么我搜索结果:

select * from worker where name like %Aaron%

如果我传递了像Aaron Alina Wendy这样的关键字,那么我搜索结果:

select * from worker where name like %Aaron% or name like '%Alina%' or name like '%Wendy%'

我知道肯定有split function之类的简单方法或者其他方式得到搜索结果,而且我不需要拆分关键字来拼接sql语句,怎么做?我是这样工作的:

select * from worker where fn_getSearchCondition('Aaron Alina Wendy')

尝试:

SELECT w.* 
FROM worker w
JOIN table(
   DBMSOUTPUT_LINESARRAY('Aaron', 'Alina', 'Wendy')
) x
ON w.name LIKE '%'||x.column_value||'%'

尝试:

select w.*
  from worker w
 where regexp_like(w.name,'Aaron|Alina|Wendy');

如果您的搜索条件列表是可变的,您可以使用 REPLACE() 函数将 space 字符转换为竖线分隔符以组成正则表达式:

regexp_like(w.name, replace('Aaron Alina Wendy',' ','|') )