先保存其它数据生成一条记录. 然后执行一个查询(查询你想插入clob类型的记录)val_clob是一个字符型.. 你试试吧.. 我就是这样做的 .. 我是用来保存大字段的 .. 不知你的用法是怎么样的 ? pstmt = connection.prepareStatement(s_query);
rs = pstmt.executeQuery();
oracle.sql.CLOB clobtt = null; if(rs.next())
{
clobtt = (oracle.sql.CLOB)rs.getClob(1);
} try
{ Writer wr = clobtt.getCharacterOutputStream();
wr.write(val_clob);
wr.flush();
wr.close();

解决方案 »

  1.   

    读出 ..
    public String getArchive(String sql)
    {
    String description = "";
    oracle.sql.CLOB clobtmp = null;
    PreparedStatement pstmt = null;
    try
    {
    ConnectionPool cn = new ConnectionPool();
    connection = cn.getConnection();
    connection.setAutoCommit(true);
    pstmt = connection.prepareStatement(sql);
    ResultSet result = pstmt.executeQuery(); if(result.next())
    { oracle.jdbc.driver.OracleResultSet ors = (oracle.jdbc.driver.OracleResultSet)result;
    clobtmp = (oracle.sql.CLOB) ors.getClob(1); }
    if(clobtmp==null || clobtmp.length()==0)
    { System.out.println("======CLOB对象为空 ");
    description = "";
    }
    else
    { description=clobtmp.getSubString((long)1,(int)clobtmp.length());
    System.out.println("======字符串形式 "+description);
    } result.close();
    pstmt.close();
    connection.close();  }catch(SQLException ex)
     {
     System.err.println("Manipulator.getArchive: " + ex.getMessage());
     }
     return description; }
      

  2.   

    谢谢,这个我知道啊!可编译时说没有oracle.sql.CLOB 啊!我只想知道哪里下载包含oracle.sql.CLOB的包
      

  3.   

    在Oracle JDBC 驱动里能找到所需要的包
    在classpath里指一下包的路径
    如果是tomcat可以直接拷贝到tomcat\common\lib下
      

  4.   

    装了oracle就是会有那个包了 ...
      

  5.   

    在classes12.jar 包里,只要加载该包就可以了!
      

  6.   

    http://expert.csdn.net/Expert/topic/876/876147.xml?temp=.2300684
      

  7.   

    description=clobtmp.getSubString((long)1,(int)clobtmp.length());
    到13000时会有问题
      

  8.   

    真奇怪。你们说的方法我都试过,怎么在clobtt = (oracle.sql.CLOB)rs.getClob(1);这行总是出错误信息。虚方法错误?怎么回事。你们的JDK和ORACLE是什么版本的?我的是JDK1。3,ORACLE 8。16i
      

  9.   

    davisye(Feng) 的答案正确,我已经测试过。