I tried this:
from Table where (:par1 is null or col1 = :par1)
but it happens that
from Table where :par1 is null
always returns all the rows of the table, even if the :par1 is not null.
while
select * from table where col1 = 'asdf'
does not return any row.
I can't use native grammars because my application is supposed to run on different database engines