* * * * _
рассматривается в SQL как подстановочный знак, поэтому он фактически пытается сопоставить любой символ.Вы можете обернуть _
в []
.Это должно вернуть то, что вы хотите:
select * from mn_table where status='Y' and upper(pl_name) like'%[_]5M[_]%'
Это будет соответствовать любому символу в квадратных скобках.
В качестве альтернативы, используйте escape ESCAPE '\'
:
select * from mn_table where status='Y' and upper(pl_name) like'%\_5M\_%' ESCAPE '\'