0

我正在为一个字段中包含超过 100 个字符的一个请求调用一个存储过程,但由于字段大小为 100 以及如何为该特定字段的每 100 个字符拆分请求而失败?该特定字段的最大大小为 100,当向该字段传递 250 个字符时,我们必须将调用拆分为每 100 个字符。

仅供参考,不会将任何内容更新到数据库中,只是从数据库中读取值。

4

2 回答 2

1

你给的很少,但这是我对解决方案的最佳猜测:

String longStr; // your long string

for (String max100 : longStr.split("(?<=.{,100})")) {
    connection.execute("call someProc('" + max100 + "')");
}

此代码非常简单,仅供说明使用。实际上,您会使用带有占位符的准备好的语句。

也就是说,作为这个问题的核心的拆分代码应该会有所帮助。

于 2013-05-07T03:14:56.253 回答
0

尝试这个:

// 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();
}
于 2013-05-07T04:40:10.753 回答