如何在Oracle中将动态参数传递给喜欢的运算符?

Bas*_*sha 0 oracle

我需要根据数据之间的任何单词进行搜索。如何在存储过程中为此传递参数?

where like employeename concat(empname,'%')
Run Code Online (Sandbox Code Playgroud)

不起作用

它只会得到开始的emp名称...

APC*_*APC 5

搜索字词的两端都需要通配符。使用||运算符的方式较少:)

 select * 
 from emp
 where ename like '%' || p_name || '%'
Run Code Online (Sandbox Code Playgroud)

为此,concat()需要两次调用该函数:

 select * 
 from emp
 where ename like concat('%', concat(p_name, '%'))
Run Code Online (Sandbox Code Playgroud)