0

1 つのフィールドに 100 文字を超える 1 つの要求に対してストアド プロシージャを呼び出していますが、フィールド サイズが 100 であるため失敗し、その特定のフィールドの 100 文字ごとに要求を分割する方法を教えてください。その特定のフィールドの最大サイズは 100 で、そのフィールドに 250 文字を渡す場合、100 文字ごとに呼び出しを分割する必要があります。

参考までに、DB から値を読み取るだけで DB に何も更新しません。

4

2 に答える 2

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 に答える