Try:
Select columnA, columnB, columnC, columnD
from myTable t
where t.&searchColumn in ('&searchParam')
Also if they are going to be typing in the substitution values, you don't need to define them earlier.
And I would change "IN" to "="
Or if they need to type in multiple values to search on:
Select columnA, columnB, columnC,columnD
from myTable t
where t.&searchColumn in (&searchParam)
But they will have to have correct input, such as:
'string','string1'
2010,2011
If you want them to be able to type the substitution values into the file (at the top) using DEFINE, this is what you would do:
define searchColumn = column_name_here
define searchParam = search_term_here
Select columnA, columnB, columnC,columnD
from myTable t
where t.&searchColumn in ('&searchParam')
Again, you might want to change IN to =
On a side note, if the substiution variable is not defined, the user will be prompted to enter it. So it depends on whether you want them to be prompted to enter it each time it's run, or if you want them to be able to define the variables at the top of the script, before they run it.