TOracleQuery.RowsProcessed or TOracleDataSet.RecordCount can't return more than
2147483647 (type Integer).
What do, if to be done to more than 2147483647 records?
That won't work, 2147483647 records is the limit. You would have to redesign the query into multiple smaller queries.
Ok. How to redesign the query?
You mean in where clause for first query
set:
where ...
rownum between 1 and 2147483647
for second query set:
where ...
rownum between 2147483647 and 4294967294 --2147483647+2147483647

of course I'm use bind variables instead of integer values

If used rownum, this is will be guaranteed what queries not return cross records?
That will not work.

where
rownum between 2147483647 and 4294967294

will never return a value.

rownum is a pseudocolumn which always starts with 1 and counts the "RESULT".

If you say rownum > 1 then for the first record the result is false and the record is not returned and then rownum is not increased.

This is an oracle-sql restriction.
Greetings
Jens
[quote]Ok. How to redesign the query?[/quote]For example, if this is a join, change it to a master query and a subquery.

Single join with many rows:
Code
select d.dname, e.ename
  from dept d, emp e
 where e.deptno = d.deptno
Master/subquery with fewer rows:
Code
select deptno, dname
  from dept

select ename
  from emp
 where depnto = :v_deptno
Thanks All
© Allround Automations forums