From: Karl K. <kk...@se...> - 2003-06-30 19:59:21
|
Has anyone had any success using Oracle LOB's on JBoss? I have persistantly= had this problem up to and including 3.2.1 where I can insert LOB's just f= ine. But on update I get the dreaded ORA-01002: Fetch out of sequence. I am= using JBoss3.2.1, Oracle 9i, and the 9i thin driver (ojbdc14_g.jar). Here = a code snippet that persistantly fails: try { boolean big =3D cr.getCurveData().length() > 4000; if (!big) { stmt =3D factory.getSqlStatement("Curves", "Update", conn); stmt.setString(1, cr.getCurveData()); stmt.setTimestamp(2, new Timestamp(new java.util.Date().get= Time())); stmt.setInt(3, cr.getUserId()); stmt.setInt(4, cr.getTopicId()); stmt.setDate(5, new Date(cr.getMarketDay().getDate().getTim= e())); result =3D stmt.executeUpdate(); } else { stmt =3D factory.getSqlStatement("Curves", "UpdateLarge", c= onn); stmt.setTimestamp(1, new Timestamp(new java.util.Date().get= Time())); stmt.setInt(2, cr.getUserId()); stmt.setInt(3, cr.getTopicId()); stmt.setDate(4, new Date(cr.getMarketDay().getDate().getTim= e())); result =3D stmt.executeUpdate(); if (result =3D=3D 0) { return result; } stmt =3D factory.getSqlStatement("Curves", "SelectUpdate", = conn); stmt.setInt(1, cr.getTopicId()); stmt.setDate(2, new Date(cr.getMarketDay().getDate().getTim= e())); OracleResultSet rs =3D (OracleResultSet) stmt.executeQuery(= ); if (rs !=3D null && rs.next()) { rs.getCLOB(1).putString(1, cr.getCurveData()); rs.close(); } } return result; } finally { try { if (stmt !=3D null) { stmt.close(); } } catch (SQLException e) { logger.warn("Failed to close a SQL resource.", e); } } The error, ORA-01002, is raised on the invocation of OracleResultSet rs =3D= (OracleResultSet) stmt.executeQuery(). My understanding is that, as long a= s autocommit is false, this should work. Since the connection is fetched f= rom a connection pool managed by JBoss, this should be the case. Any clues = as to why this does not work? Karl ********************************************************************** This e-mail contains privileged attorney-client communications and/or confi= dential information, and is only for the use by the intended recipient. Rec= eipt by an unintended recipient does not constitute a waiver of any applica= ble privilege. Reading, disclosure, discussion, dissemination, distribution or copying of = this information by anyone other than the intended recipient or his or her = employees or agents is strictly prohibited. If you have received this comm= unication in error, please immediately notify us and delete the original ma= terial from your computer. Sempra Energy Trading Corp. (SET) is not the same company as SDG&E or SoCal= Gas, the utilities owned by SET's parent company. SET is not regulated by = the California Public Utilities Commission and you do not have to buy SET's= products and services to continue to receive quality regulated service fro= m the utilities. ********************************************************************** |