Como ya se comentó, es mejor y más simple simplemente concatenar varias condiciones:
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
Otra forma es insertar esos valores '%Medi%', '%Ciga%' y '%Tabacc%' en una tabla de condiciones y luego ejecutar esta consulta:
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Estoy asumiendo aquí que su mesa es department
y que conditionTable tiene una columna value
. Si implementa esta solución, debe preocuparse por la concurrencia y filtrar conditionTable por algo como
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Finalmente, una tercera solución que podría ser útil, si no desea utilizar una tabla de condiciones, es generar una cadena select <cond1> as value from dual union select <cond2> from dual...
y colocado en una consulta dinámica como
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;