Oracle PLSQL – Using Optional Parameter in WHERE Condition

oracleplsql

I have the following where condition:

lr."dateEnd" >= to_date(?, 'dd.mm.yyyy') and lr."dateEnd" <= to_date(?, 'dd.mm.yyyy')

All works fine. But the second unnamed parameter is optional. How to check if it's empty or null then don't check the second condition?

Best Answer

Use CASE?

http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm

something like:

lr."dateEnd" >= to_date(?, 'dd.mm.yyyy') and lr."dateEnd" <= (case when parameter2 is null then
sysdate
  else
to_date(parameter2, 'dd.mm.yyyy')