如果用jdbc插入blob字段的记录的主键是sequence如何插入?

通常插入含blob字段的记录时,会插入一个空blob字段,然后选出改条记录写入blob内容,如果这条记录的主键为sequence如如何选出该条记录那?我这里老报rs记录集为空的错误。
[b]问题补充:[/b]
to totong:我用了currval还是不行呀:[code="java"]
try {

        String updatesql = "update sentmessagebufferlog  set sendresult='9'  where sentmessageid ='"
            + sentmessageid + "'";
    log.debug("updatesql is:" + updatesql);
    String insertsql = "insert into sentmessagebufferlog (sentmessageid,bufferdata,destination,messageid,memo,resendnumber,sentlogtime) values(SEQ_SENT_MESSAGE.nextval,empty_blob(),'"
            + destination
            + "','"
            + messageid
            + "','"
            + memo
            + "','"
            + resendnumber 
            + "',to_date('" 
            + sentlogtime + "','yyyy-MM-dd HH24:mi:ss '))";
        conn = ConnectionManager.currentConnection();
        conn.setAutoCommit(false);
        stmt = DBUtil.getStatement(conn);
        int rsupdate = stmt.executeUpdate(updatesql);
        int rsinsert = stmt.executeUpdate(insertsql);

        String updatestate = String.valueOf(rsupdate);
        String insertstate = String.valueOf(rsinsert);
        rs = stmt.executeQuery("select SEQ_SENT_MESSAGE.currval from dual");
        String id = rs.getString(0);
        rsblob = stmt
                .executeQuery("select bufferdata from sentmessagebufferlog where rownum='"+id+"' for update");
        if (rsblob.next()) {
            oracle.sql.BLOB blob = (BLOB) rsblob.getBlob("bufferdata");
            outStream = (OutputStream) ((oracle.sql.BLOB) blob)
                    .getBinaryOutputStream();
            byte[] data = buffercontent.getBytes(); // System.out.println("data
                                                    // is:"+data);
            outStream.write(data, 0, data.length);

        }
        outStream.flush();
        outStream.close();
        conn.commit();
        log.debug("rs is:" + updatestate);
        // String Json="{success:";

        if (updatestate.equals("1") && insertstate.equals("1")) {
            Json += "true";
            Json += "," + "check:true";
            Json += "," + "update:true";
            log.info(" success update  nodeconfig a record");
        }
        else
        {
            Json += "false";
            Json += "," + "check:true";
            Json += "," + "update:false";
            log.info(" failure update  nodeconfig a record");

        }


    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("insert error");
        conn.rollback();
        Json += "false";
        Json += "," + "check:true";
        Json += "," + "update:false";
        log.info(" failure update  nodeconfig a record");
    } finally {
        if(rs!=null)
        {
        rs.close();
        }
        if(rsblob!=null)
        {
        rsblob.close();
        }
        if(stmt!=null)
        {
        stmt.close();
        }
        if(conn!=null)
        {
        conn.close();
        }
        //rsblob.close();
    }
    Json += "}";

[/code]代码贴上

序列有CurrVal和NextVal,使用CurrVal可以获得当前值
你应该是使用了两次NextVal才造成结果集为空,试下第二次取记录的时候用CurrVal