vas a tener que hacer esto como una consulta independiente, por ejemplo:
SELECT COUNT(1) FROM table_name
Algunos controladores JDBC le puede decir pero esto es opcional y el comportamiento, más al punto, el conductor no puede sé todavía. Esto puede deberse a la forma en que se optimiza la consulta; por ejemplo, dos estrategias de ejecución de ejemplo en Oracle son obtener todas las filas lo más rápido posible o obtener la primera fila lo más rápido posible.
Si realiza dos consultas por separado (una para el recuento y otra para la consulta), deberá realizarlas en la misma transacción. Esto funcionará bien en Oracle pero puede ser problemático en otras bases de datos (por ejemplo, SQL Server mostrará datos no confirmados o bloqueará una actualización externa no comprometida dependiendo de su nivel de aislamiento, mientras que Oracle admite un nivel de aislamiento que le brinda una vista transaccionalmente consistente del datos sin bloqueo en actualizaciones externas).
Aunque normalmente no importa cuántas filas hay. Normalmente, este tipo de consulta se procesa por lotes o se busca y, en cualquier caso, tiene información de progreso en forma de filas cargadas/procesadas y puede detectar el final del conjunto de resultados (obviamente).
buena respuesta, aunque no entiendo el comentario final acerca de tener información de progreso. ¿De dónde viene esto? – Aktau
Esto requiere otra consulta. Si tiene un conjunto de resultados desplazable, hay mejores opciones en otras respuestas. – JDuarteDJ