每100个字符拆分请求

时间:2013-05-07 02:38:18

标签: java

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

仅仅是从DB中读取值时,FYI不会将任何内容更新到DB中。

2 个答案:

答案 0 :(得分:1)

你很少继续下去,但这是我对解决方案的最佳猜测:

String longStr; // your long string

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

此代码非常简单,仅供说明使用。实际上,您将使用带占位符的预准备声明。

那就是说,分裂代码,这是这个问题的核心,应该是有帮助的。

答案 1 :(得分: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();
}