我正在为一个字段中包含超过 100 个字符的一个请求调用一个存储过程,但由于字段大小为 100 以及如何为该特定字段的每 100 个字符拆分请求而失败?该特定字段的最大大小为 100,当向该字段传递 250 个字符时,我们必须将调用拆分为每 100 个字符。
仅供参考,不会将任何内容更新到数据库中,只是从数据库中读取值。
我正在为一个字段中包含超过 100 个字符的一个请求调用一个存储过程,但由于字段大小为 100 以及如何为该特定字段的每 100 个字符拆分请求而失败?该特定字段的最大大小为 100,当向该字段传递 250 个字符时,我们必须将调用拆分为每 100 个字符。
仅供参考,不会将任何内容更新到数据库中,只是从数据库中读取值。
你给的很少,但这是我对解决方案的最佳猜测:
String longStr; // your long string
for (String max100 : longStr.split("(?<=.{,100})")) {
connection.execute("call someProc('" + max100 + "')");
}
此代码非常简单,仅供说明使用。实际上,您会使用带有占位符的准备好的语句。
也就是说,作为这个问题的核心的拆分代码应该会有所帮助。
尝试这个:
// longStr is your long string
String substring = null;
PreparedStatement prepped = connection.prepareeStatement("call someProc(?)", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
int maxLoop = longStr.length() / 100;
for (int i = 0; i < maxLoop; i++) {
substring = longStr.substring(100 * i, 100 * (i + 1));
prepped.setString(1, substring);
ResultSet result = prepped.executeQuery();
}
if (longStr.length() % 100 != 0) {
substring = longStr.substring(maxLoop * 100);
prepped.setString(1, substring);
ResultSet result = prepped.executeQuery();
}