首页 > 解决方案 > 如何通过 jdbc 将从查询返回的记录拆分为 1000 组

问题描述

我有一个源数据库和一个目标数据库,我需要检查两者的计数,是否相同。

我通过以下查询从源数据库中获取一列:

DMS_Arr[0] = "select count(distinct eai_src_pk) from document_id_creation where eai_entry_date > (trunc(sysdate-1) + 00/24) and eai_entry_date < (trunc(sysdate) + 00/24)";
DMS_Arr[1] = "select distinct eai_src_pk from document_id_creation where eai_entry_date > (trunc(sysdate-1) + 00/24) and eai_entry_date < (trunc(sysdate) + 00/24)";

现在我将 DMS_Arr[1] 的输出存储到一个用逗号分隔的变量“targetPk”中,并在我的 JDBC 查询中使用它来通过以下查询检查目标端的计数。

ERP_Arr[0] ="select count(distinct eai_src_pk) from xxindus.XXINDUS_ERP_OBRM_PYMT_CNDN_T where eai_src_pk in (" + targetPk + ")" + " and eai_entry_date > (trunc(sysdate-1) + 00/24)";

但是,问题是变量 targetPk 中的记录可能是 1000、10000 或 150000,而数据库一次只能处理 1000 个。如何让我的代码处理这个问题并自动将它们拆分为 1000 组,以便 JDBC 查询不会引发任何错误。然后我需要将所有这些返回的值存储到一个用逗号分隔的字符串变量中并检查计数。

标签: javajdbcoracle11g

解决方案


推荐阅读