9

私は IBM websphere commerce と db2 を使用しており、次のコードがあります。

Clob clobVar = null;
if (result.elementAt(3) != null)
    clobVar = (Clob) result.elementAt(3);

if (clobVar == null) {
    infoTable.put("EInfo", "");
} else {
    stringTemp = clobVar.getSubString(1, (int) clobVar.length());
    infoTable.put("EInfo", stringTemp); 
}

コードは正常に動作します

clobVar = (Clob) result.elementAt(3);

しかし、実行が来るとすぐに

stringTemp = clobVar.getSubString(1, (int) clobVar.length());

システムが例外をスローする

[jcc][10120][11936][4.3.111] 無効な操作: LOB が閉じられています。ERRORCODE=-4470、SQLSTATE=null

私が間違っていることは何ですか?

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

17

この問題はprogressiveStreaming=2;、接続 URL に引数を追加することで解決できます。

完全に指定された接続 URL は、次のように指定されます。

jdbc:db2://localhost:50000/SAMPLE:progressiveStreaming=2;

そのパラメーターに例外がある場合は、次を追加します。

jdbc:db2://localhost:50000/SAMPLE:driverType=4;fullyMaterializeLobData=true;fullyMaterializeInputStreams=true;progressiveStreaming=2;progresssiveLocators=2;

使用することが好ましいdb2jcc4.jar

于 2014-03-31T11:09:54.327 に答える