oracle使用java操作clob类型的字段

原创 2015年12月30日 13:34:14

插入

public static void insert(String id, String name,String clob_content) {
        Writer outStream = null;
        // 通过JDBC获得数据库连接
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection(
                            "jdbc:oracle:thin:192.168.50.18/test",
                            "root", "123456");
            con.setAutoCommit(false);
            Statement st = con.createStatement();
            // 插入一个空对象empty_clob(),这个是必须的
            // insert into EMS_CUST_JS(cust_code, js_name,
            // js_content)values('','', empty_clob())
            st.executeUpdate("insert into text(id, name, clob_content)values"
                            + "('"+ id + "','" + name + "', empty_clob())");
            // 锁定数据行进行更新,注意“for update”语句,这里不用for update锁定不可以插入clob
            ResultSet rs = st.executeQuery("select clob_content from text where id='"+ id+ 
                            "' and name='"+ name+ 
                            "' for update");
            if (rs.next()) {
                // 得到java.sql.Clob对象后强制转换为oracle.sql.CLOB
                oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("clob_content");
                outStream = clob.getCharacterOutputStream();
                // clob_content是传入的字符串
                char[] c = clob_content.toCharArray();
                outStream.write(c, 0, c.length);
            }
            outStream.flush();
            outStream.close();
            con.commit();
            con.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

读取

public static String read() throws Exception {
        String data = null;
        Reader inStream = null;
        // 获得数据库连接
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con = DriverManager.getConnection(
                        "jdbc:oracle:thin:192.168.50.18/test",
                        "root", "123456");
        con.setAutoCommit(false);
        Statement st = con.createStatement();
        // 不需要“for update”
        ResultSet rs = st.executeQuery("select CLOB_CONTENT from TEXT where ID=1");
        if (rs.next()) {
            java.sql.Clob clob = rs.getClob("CLOB_CONTENT");
            inStream = clob.getCharacterStream();
            char[] c = new char[(int) clob.length()];
            inStream.read(c);
            // data是读出并需要返回的数据,类型是String
            data = new String(c);
            inStream.close();
        }
        inStream.close();
        con.commit();
        con.close();

        return data;
    }

java对Clob大数据字段类型的增删改查

前几天临时支援,帮pc端几个接口,主要是对一个表的CRUD操作,虽然快两年多没写后台相关的东西了,但还不至于连一个表的基本的CRUD操作都忘了。但悲剧往往就来的这么及时,表中有一个字段是Clob类型的...
  • lishihong108
  • lishihong108
  • 2016年08月17日 17:18
  • 3834

java 读取clob字段的几种方法

最近频繁处理clob字段,故集中了几种读取clob字段的方法,供大家参考。     第一种:     Clob clob = rs.getClob("remark");//java.sql...
  • u010599762
  • u010599762
  • 2014年10月29日 17:52
  • 2552

运用Java如何存取Oracle中的CLOB类型字段

这是我几年前写的文章了,一直没有发出来。今天给大家分享。大家从这个例子如手吧。这个例子,存和取都很明白了  import java.sql.*; import java.io.*; import or...
  • etre
  • etre
  • 2003年07月20日 13:15
  • 6142

java读取clob字段的几种方法

第一种 Clob clob = rs.getClob("remark");//java.sql.Clob String detailinfo = ""; if(clob != null){ ...
  • tanksyg
  • tanksyg
  • 2015年11月19日 15:00
  • 7810

Java对Oracle中Clob类型数据的读取和写入

Java对Oracle中Clob数据类型是不能够直接插入的,但是可以通过流的形式对clob类型数据写入或者读取,网上代码并不算特别多,讲的也不是很清楚,我对网上资料进行了整理和总结,具体看代码: ...
  • h254931252
  • h254931252
  • 2016年10月18日 12:52
  • 5624

JAVA完全控制Oracle中BLOB、CLOB说明

网络上很多关于JAVA对Oracle中BLOB、CLOB类型字段的操作说明,有的不够全面,有的不够准确,甚至有的简直就是胡说八道。最近的项目正巧用到了这方面的知识,在这里做个总结。 环境:Databa...
  • wazj0517
  • wazj0517
  • 2006年10月19日 15:31
  • 14092

oracle数据类型和对应的java类型

地址: http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/datacc.htm...
  • perny
  • perny
  • 2012年09月12日 14:28
  • 68133

java读取Oracle中大字段数据(CLOB)的方法

今天遇到一个难题,Oracle数据库中有一个字段是CLOB类型,java简单解析不了。去查找了一下解决方案,试了好几种,下面的这种是有效的。 public String ClobToString...
  • u011342403
  • u011342403
  • 2017年06月07日 22:49
  • 1147

Java JDBC读取大文本类型数据(CLOB)

Java JDBC读取大文本类型数据(CLOB) 开发中我们常常要把一些大文本类型数据存入数据库,例如一片文章这是后我们就需要数据库的CLOB类型来存储了。   一、建立数据库表 此不省略,因...
  • hexiaohu2009
  • hexiaohu2009
  • 2012年12月28日 22:46
  • 5140

java 存取 clob 字段

Java 存储和读取 oracle CLOB 类型字段 (2008-08-22 15:08:38)转载 标签: 杂谈 package oracle.clob; import java.io...
  • gdweijin
  • gdweijin
  • 2010年10月22日 10:26
  • 2126
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle使用java操作clob类型的字段
举报原因:
原因补充:

(最多只允许输入30个字)