I am trying to implement a query like below
SELECT *
FROM emp
WHERE LOWER (ename) IN LOWER ('A', 'b', 'C', 'd','eF','GG','Hh');
ORA-00909: invalid number of arguments.
@Muhammad Muazzam has it right, but if for some reason you really need to user LOWER on the right hand side with a list of values then you could do this:
select ename from emp
where lower(ename) in
(select lower(column_value)
from table(SYS.KU$_VCNT('A','B','C','D'))
);
SYS.KU$_VCNT
is a table of VARCHAR2(4000) type that should already exist in your database.