问我在给clob对象赋值时,不管用OutputStream out=clob.setAsciiStream(0);,还是用
colb.setCharacterStream(arg0)包不支持运行错,怎么会不支持呢??要怎样才能解决掉呢?多谢各位

解决方案 »

  1.   

    写入Blob和Clob对象时一般只能使用PreparedStatement对象吧。
      

  2.   

      Reader clobReader = new StringReader(text); // 将 text转成流形式
      stmt.setCharacterStream(1, clobReader, text.length());/
      

  3.   


    是不是驱动包,jar包什么的有问题??我的ide中不提示有setCharacterStream(1, clobReader, text.length()这个方法
      

  4.   

    package oracle.clob;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.Reader;
    import java.io.StringReader;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import oracle.jdbc.driver.OracleDriver;
    import oracle.sql.CLOB;
    public class ClobTest {
        String url = "jdbc:oracle:thin:@192.168.2.157:1521:orcl";
        String user = "xj";
        String pwd = "xj";
        String text = "这是要插入到CLOB里面的数据";
        
        private void clobImport() throws ClassNotFoundException, SQLException {
            // TODO Auto-generated method stub
            DriverManager.registerDriver(new OracleDriver());
            Connection conn = DriverManager.getConnection(url, user, pwd);// 得到连接对象
            String sql = "insert into clob_test(id,str) values ('1',?)";// 要执行的SQL语句
            PreparedStatement stmt = conn.prepareStatement(sql);// 加载SQL语句
            // PreparedStatement支持SQL带有问号?,可以动态替换?的内容。
            Reader clobReader = new StringReader(text); // 将 text转成流形式
            stmt.setCharacterStream(1, clobReader, text.length());// 替换sql语句中的?
            int num = stmt.executeUpdate();// 执行SQL
            if (num > 0) {
                System.out.println("ok");
            } else {
                System.out.println("NO");
            }
            stmt.close();
            conn.close();
        }
        private void clobExport() throws ClassNotFoundException, SQLException,
                IOException {
            // TODO Auto-generated method stub
            CLOB clob = null;
            String sql =  
      

  5.   

    blob不是这么写入的,首先写入empty_blob(),然后读取出来,对那个blog字段进行写入。
    你这样直接写可能有问题的。