I'm in need to put on a where-clause on my SQL on an infocube.
To avoid subselects I want to just have the following type of Where-clause:
WHERE SID_0MOVETYPE in (13,12,15,16,33,34,35,36,31,86,44,55,56,57,59,63)
But I get the following error:
SQL_ERROR (ID:00 Type:E Number:001 List elements that take up more than one line are not allowed)
I tried to google it, but couldn't find any answers.
If I split up the query like this:
WHERE SID_0MOVETYPE in (13,12,15,16,33,34,35,36) or SID_0MOVETYPE in (31,86,44,55,56,57,59,63)
then it works fine.
However, this error bugs me.
Has anyone experienced this?
Is this a connector issue or is it something in the source database?
I'm running the 5.6 version of the SAP connector.
Thanks in advance.
Yes...There is some limitation to IN query.
Every SQL batch has to fit in the Batch Size Limit: 65,536 * Network Packet Size
Thus, have to split it in subqueries.
Thank you for your quick response.
BW at this customer is running on Oracle, not SQL Server.
Do you know if this also applies on Oracle?
This IN query itself has this limitation. So, irrespective of the database, we use SQL SELECT query to read data from the database.
ok, because the subquery is of type IN (select ID.....
I'm getting the same error.
Guess the only solution is to get the correct ID's and put them in the WHERE-clause separated with OR like I wrote in the first post..
Alternative option is make Inline table of required movement type and then do inner join with load scrpit . It will reduce complexity during extraction.