首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于往Oracle数据库中插入Clob类型数据有关问题!怎么将String类型数据转换成Clob类型

2012-03-17 
关于往Oracle数据库中插入Clob类型数据问题!如何将String类型数据转换成Clob类型?问题如下一段程序:public

关于往Oracle数据库中插入Clob类型数据问题!如何将String类型数据转换成Clob类型?
问题如下一段程序:
    public   int   insertForm()   {
                String   strsql   =   " ";
                String   strtime   =   " ";
                try   {
                        Connection   conn   =   db.getConnection();
                        strtime   =   db.getCurrentDate( "yyyy-MM-dd   HH:mm:ss ");
                        strsql   = "insert   into   productor(cpmc,bbh,cpgn,lbid,moreinfo)values(?,?,?,?,?) ";//其中cpgn和moreinfo在数据库中是Clob型字段

                        PreparedStatement   pstmt   =   conn.prepareStatement(strsql);
                        pstmt.setString(1,   form.getCpmc());
                        pstmt.setString(2,   form.getBbh());

                          oracle.sql.CLOB   clob1=oracle.sql.CLOB.createTemporary(conn,false,oracle.sql.CLOB.DURATION_CALL);
                          clob1.putString(1,form.getContent());//将form.getContent()(其值为String类型)转换成CLOB型插入数据库
                          pstmt.setClob(3,   clob1);
                          pstmt.setInt(4,   Integer.parseInt(form.getCplx()));
                         
                        oracle.sql.CLOB   clob2=oracle.sql.CLOB.createTemporary(conn,false,oracle.sql.CLOB.DURATION_CALL);
                          clob2.putString(1,form.getXxxx());//将form.getXxxx()(其值为String类型)转换成CLOB型插入数据库
                        pstmt.setClob(5,   clob2);
                        pstmt.executeUpdate();
                        conn.commit();
                        pstmt.close();
                        db.close();
                }   catch   (Exception   e)   {
                        db.rollback();
                        e.printStackTrace();
                        return   2;
                  e.printStackTrace();
                }   finally   {
                        db.close();


                }
                return   0;
        }

程序运行时出现错误!java.sql.SQLException:   无法从套接字读取更多的数据
不知道是那里不对头!请高手看看程序那里有问题!速度。。。。

[解决办法]
把你的代码改成下面的:
//创建并实例化一个CLOB对象
CLOB clob = new CLOB((OracleConnection)con);
clob = oracle.sql.CLOB.createTemporary((OracleConnection)con,true,1);
//对CLOB对象赋值
clob.putString(1,form.getContent());
OracleConnection OCon = (OracleConnection)con;
OraclePreparedStatement pstmt = (OraclePreparedStatement)OCon.prepareCall(strSql);

//这一条,看到了吗,关键,setCLOB
pstmt.setClob(2, clob );

热点排行