我在一个字段中调用一个请求的存储过程,其中包含超过100个字符,并且由于字段大小为100而导致失败,以及如何将请求分割为每100个字符特定领域?该特定字段的最大大小为100,当将250个字符传递给该字段时,我们必须将每100个字符的呼叫拆分。将请求分隔为每100个字符
仅供读取数据库中的值,不会将任何内容更新到数据库中。
我在一个字段中调用一个请求的存储过程,其中包含超过100个字符,并且由于字段大小为100而导致失败,以及如何将请求分割为每100个字符特定领域?该特定字段的最大大小为100,当将250个字符传递给该字段时,我们必须将每100个字符的呼叫拆分。将请求分隔为每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();
}
您可以添加更多的细节?存储过程有一个最大大小为100的字段,是它失败的原因吗? – raffian 2013-05-07 02:40:02
可能的重复http://stackoverflow.com/questions/2297347/splitting-a-string-at-every-n-th-character – hrezs 2013-05-07 02:41:38