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;
    }
时间: 2024-10-10 22:46:12

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

weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB 解决方法

源程序: SerializableBlob sb = (SerializableBlob)s.getStampimage();Blob wrapblob = sb.getWrappedBlob();oracle.sql.BLOB blob = (oracle.sql.BLOB)wrapblob;OutputStream out = blob.getBinaryOutputStream();out.write(s.getStampimagebyte());out.close(); 异常情况: ja

Oracle SQL培训教程:从实践中学习Oracle SQL及Web快速应用开发-读书笔记

字符集的不同使日期型的显示有问题解决 alter session set NLS_DATE_LANGUAGE='AMERICAN'; 解锁scott账户 alter user scott identified by tiger account unlock; DISTINCT去掉重复的行 基本查询语句的格式 SELECT *|{[DISTINCT] 列表,...} FROM 表名: 其中 列表: 列名|表达式 [别名] SELECT * FROM tab;SELECT * FROM emp;SE

使用JDBC操作存储过程

  使用JDBC操作存储过程,可以借助于一个借口CallableStatement实现. 此时调用存储过程的sql语句为:{call procedure_name [(arg1),(arg2)]} 而CallableStatement可以通过数据库连接对象的prepareCall()方法获得 例如: conn.prepareCall(sql); 如果此时的存储过程有输出参数,可以通过他的registerOutParameter()方法将输出参数注册为JDBC类型.例如: registerOutP

jdbc操作clob大数据

Connection conn = this.getHibernateTemplate() .getSessionFactory().getCurrentSession().connection(); String sqlclob = "Select o.value_clob from os_propertyset o Where o.property_key=? and o.entry_id=? FOR Update "; PreparedStatement pstmt = conn

《精通Oracle SQL(第2版) 》

<精通Oracle SQL(第2版) > 基本信息 作者: (美)Karen Morton    Kerry Osborne    Robyn Sands    Riyaj ShamsudeenJared Still 译者: 朱浩波 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115351661 上架时间:2014-5-5 出版日期:2014 年5月 开本:16开 页码:1 版次:1-1 所属分类:计算机 > 数据库 > Oracle 更多关于>&g

jdbc mysql crud dao模型 sql注入漏洞 jdbc 操作大文件

day17总结 今日内容 l JDBC 1.1 上次课内容总结 SQL语句: 1.外键约束:foreign key * 维护多个表关系! * 用来保证数据完整性! 2.三种关系: * 一对多: * 一个客户可以对应多个订单,一个订单只属于一个客户! * 建表原则: * 在多的一方创建一个字段,作为外键指向一的一方的主键!!! * 多对多: * 一个学生可以选择多个课程,一个课程也可以被多个学生选择! * 建表原则: * 创建第三张表,第三张表中放入两个字段,作为外键分别指向多对多双方的主键! *

通过jdbc完成单表的curd操作以及对JDBCUtils的封装

概述:jdbc是oracle公司制定的一套规范(一套接口),驱动是jdbc的实现类,由数据库厂商提供.所以我们可以通过一套规范实现对不同的数据库操作(多态) jdbc的作用:连接数据库,发送sql语句,处理结果 curd操作:它代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作 jdbc操作步骤: 1.数据库和表 在这里,用exercise数据库下的student表. 2.创建一个项目 由于是在javase版本的ecplise下创建的,lib文件夹

Java JDBC批处理插入数据操作

在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及如何优化批量操作. 首先,使用Java JDBC基本的API批量插入数据到数据库中. Simple Batch - 简单批处理    我把它叫做简单批处理.要求很简单,执行批量插入列表,而不是为每个INSERT语句每次提交数据库,我们将使用JDBC批处理操作和优化性能. 想想一下下面的代码: Bad

MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于excel),用来存放多行内容/多条记录 5. 记录:事物一系列典型的特征 6. 数据:描述事物特征的符号 MySQL数据库就是一个套接字软件,用来管理其他机器上的数据文件 MySQL介绍: MySQL是一个关系型数据库管理系统:就是一个基于socket编写的C/S架构胡软件 客户端软件 mysql