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
...<sql statements and joins>
WHERE (a=x1 and b=y1)
OR (a=x2 and b=y2)
OR (a=x3 and b=y3)
... <4000 times>
I am thinking that I need to scale back the batch size to something less that 4000 OR statements. Any suggestions?
Best Answer
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?
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.