El 22/10/11 13:17, Martin J. Evans escribió:

For this I tried the following query: SELECT * FROM BIGTABLE WHERE FIELD IN (...~40.000 values...). Oracle, though, has a 1000 element limit for IN clauses, so I have to break the query in some 40 smaller queries and then process the results afterwards (I call this the "slice technique" since I break the list in slices with splice :-) Appart from having to do N/1000 queries insted of 1 (and now N is 40.000 but it will surely grow, so more queries), I can't offload data processing to the SQL server (which of course would be good) and my app has to process the data itself.

It would be a long piece of SQL but you could get all the results in one piece of SQL with:

select * from table where column in (1000 values) or column in (another 1000 values) ...


Thanks for this useful response, I'll try it. It comes to mind that there was a limit on SQL query length, but although there was a 64K limit in Oracle 9, there seems to be no limit on Oracle 10 and onwards (checked in OTN doc). And my Oracle DB is 10g...

I'll keep you informed :-)
Cheers and thanks again
J.



_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[email protected]

Reply via email to