JDBC 操作插入表出现javax.sql.rowset.serial.SerialBlob cannot be cast to oracle.sql.BLOB

/**
     * 接口方法
     */
    public void excuteInputDB(SynchServiceConfig synchServiceConfig)
            throws Exception {
        try {
//          if(!"".equals(queryQdParaWayinfo()))
//          {
//              CLOB clob = oracle.sql.CLOB.createTemporary(oraConn, false, oracle.sql.CLOB.DURATION_SESSION);
//              clob.putString(1, queryQdParaWayinfo());
//             
//              insertMyAnnouncement(VALID_WAYINFO_SENDER, curTime, VALID_WAYINFO_TITTLE, clob);//渠道资料缺失提醒推送
//          }
          if(!"".equals(queryQdSysNetpointuser())){
              //将String类型转oracle.sql.CLOB类型插入到数据库
              CLOB cb = oracle.sql.CLOB.createTemporary(oraConn, false, oracle.sql.CLOB.DURATION_SESSION);
              cb.putString(1, queryQdSysNetpointuser());
             insertQdSysNetpointuser(VALID_WAYINFO_SENDER, curTime, VALID_EMPLOYEE_TITTLE, cb);//营业员资料缺失提醒推送
          }
          System.out.println("===测试模块END==");
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /**
     * 获取缺失的渠道资料的数据
     * @throws SQLException 
     */
    private String queryQdParaWayinfo() throws SQLException {

        /**
         * way.id-- id vc_wayacctname-- 渠道经理联系人 way.c_wayid-- 网点编号 vc_acctname--
         * 银行帐户名 vc_acctbank-- 开户银行 vc_wayacctno-- 银行帐号 dept_sx1-- 渠道属性
         * c_accttype-- 帐户类型 si_chain-- 店铺属性 c_type-- 连锁属性 dept_sx3-- 星级
         * way.manager_name--渠道经理
         */
        String msg = "";
        String msgs = "";
        
        PreparedStatement ps = null;
        ResultSet rs = null;
        
        String sql = "select way.id, "
                + " NVL(way.vc_wayacctname, ' ') AS vc_wayacctname, "
                + " NVL(way.c_wayid, ' ') AS c_wayid, "
                + " NVL(way.vc_acctname, ' ') AS vc_acctname, "
                + " NVL(way.vc_acctbank, ' ') AS vc_acctbank, "
                + " NVL(way.vc_wayacctno, ' ') AS vc_wayacctno, "
                + " NVL(way.dept_sx1, ' ') AS dept_sx1, "
                + " NVL(way.c_accttype, ' ') AS c_accttype,"
                + " NVL(way.si_chain, -9) AS si_chain, "
                + " NVL(way.c_type, ' ') AS c_type, "
                + " NVL(way.dept_sx3, ' ') AS dept_sx3, "
                + " NVL(way.manager_name, ' ') AS manager_name "
                + " from qd_para_wayinfo way where regexp_like(way.c_wayid,'QD[0-9]{6}') and way.si_waystate = 1 ";
        System.out.println("sql......"+sql);
        try {
            ps = oraConn.prepareStatement(sql);
            rs = ps.executeQuery();
            
            while (rs.next()) {
                
                if ("".equals(rs.getString("vc_acctname").trim())) {
                    msg = msg + "银行帐户名为空,";
                }
                if ("".equals(rs.getString("vc_acctbank").trim())) {
                    msg = msg + "开户银行为空,";
                }
                if ("".equals(rs.getString("vc_wayacctno").trim())) {
                    msg = msg + "银行帐号为空,";
                }
                if ("".equals(rs.getString("dept_sx1").trim())) {
                    msg = msg + "渠道属性为空,";
                }
                if ("".equals(rs.getString("c_accttype").trim())) {
                    msg = msg + "帐户类型为空,";
                }
                if (rs.getInt("si_chain") == -9) {
                    msg = msg + "店铺属性为空,";
                }
                if (rs.getInt("si_chain") == 3
                        && "".equals(rs.getString("c_type").trim())) {
                    msg = msg + "连锁属性为空,";
                }if("".equals(rs.getString("c_wayid").trim())) {
                    msg = msg + "渠道编号为空";
                }
                if ("".equals(rs.getString("dept_sx3").trim())) {
                    msg = msg + "星级为空";
                }

                if (!"".equals(msg)) {
                    
                    msgs = msgs + rs.getString("manager_name") + "|"
                            + rs.getString("c_wayid") + "|" + msg+"|";
                    
                }
                msg = "";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(rs !=null){rs.close();}
            if(ps !=null){ps.close();}
        }
        
        return msgs;
    }
    /**
     * 插入公告表 qd_anno_myAnnouncement
     * @throws SQLException 
     * */
    private boolean insertMyAnnouncement(long sender,Date send_time,String title,Clob cb) throws SQLException{
        
        
        boolean flag = false;
        PreparedStatement psInsert = null;
        
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        try {
            String sql =
                "insert into qd_anno_myannouncement(id, sender , send_time , title , content ) " +
                "select qd_anno_myannouncement_seq.nextval,? , ? , ? ,?  from dual ";
            psInsert = oraConn.prepareStatement(sql);
            psInsert.setLong(1, sender);
            
            psInsert.setTimestamp(2, Timestamp.valueOf(sf.format(send_time)));
    
            psInsert.setString(3, title);
            
            psInsert.setClob(4, cb);
            
            int num  = psInsert.executeUpdate();
            
            if(num > 0){
                flag = true;
                
            }
            oraConn.commit();
        } catch (Exception e) {
            e.printStackTrace();
            oraConn.rollback();
        }finally{
              if(psInsert !=null){psInsert.close();}    
        }
    
        return flag;
    }

 

你可能感兴趣的:(JDBC 操作插入表出现javax.sql.rowset.serial.SerialBlob cannot be cast to oracle.sql.BLOB)