DB2 error - SQL Statement too long or complex Getting this error in a DB2 production system:

ERROR [HY000] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0101 - SQL statement too long or complex.


The statement has a large number of OR statements in the WHERE clause, as in

...&lt;sql statements and joins&gt;
WHERE (a=x1 and b=y1)
  OR (a=x2 and b=y2)
  OR (a=x3 and b=y3)
... &lt;4000 times&gt;


I am thinking that I need to scale back the batch size to something less that 4000 OR statements.  Any suggestions?
This should probably be a comment rather than an answer since I'm not sure if my reasoning is correct, but then I wouldn't be able to have any formatting.

Could you create a temporary table and JOIN instead?

...&lt;sql statements and joins&gt;
JOIN tmp_table ON my_table.a = tmp_table AND my_table.b = tmp_table.b


Edit: if the values you're checking against don't change much, it might even make sense to persist them in a table to increase performance and facilitate querying.