Comme cela a déjà été commenté, il est préférable et plus simple de simplement concaténer plusieurs conditions :
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
Une autre façon consiste à insérer ces valeurs '%Medi%', '%Ciga%' et '%Tabacc%' dans une conditionTable, puis exécuter cette requête :
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Je suppose ici que votre table est department
et que le conditionTable a une colonne value
. Si vous implémentez cette solution, vous devez vous soucier de la concurrence et filtrer conditionTable par quelque chose comme
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Enfin, une troisième solution qui pourrait être pratique, si vous ne voulez pas utiliser une conditionTable, est de générer une chaîne select <cond1> as value from dual union select <cond2> from dual...
et placé dans une requête dynamique en tant que
select department.*
from department
cross join
(select '%Medi%' as value from dual
union
select '%Ciga%' from dual
union
select '%Tabacc%' from dual) conditionTable
where department.departmentName like conditionTable.value;