oracle数据库 操作clob对象

clob类型,但对于这个类型处理起来还是比较麻烦的,varchar2长度为4000bytes,如果varchar2能满足楼主的需求,建议使用varchar2,下面提供了在Java 中读取clob类型的方式,我主要讲的是JDBC的操作,Hibernate目前不讲,操作这个Clob列主要分为插入和获取俩个操作:
1、Java程序插入Clob值到Oracle数据库表中:
   String clob= "这里主要是要插入到表中的值";
     //前面具体数据库连接代码这里省略,直接进正题
   String sql = "insert into clob_test(id,str) values (1,?)";
     PreparedStatement stmt = conn.prepareStatement(sql);
     // 将clob转成流形式
     Reader clobReader = new StringReader(clob);
     stmt.setCharacterStream(1,clobReader,clob.length());// 替换sql语句中的?
   stmt.executeUpdate();
2、读取Clob列的值
    String sql = "select str from clob_test where id=1";
       PreparedStatement stmt = conn.prepareStatement(sql);
  ResultSet rs = stmt.executeQuery();
       //最后获得的结果
      String resultClob;
       if(rs.next()){
           //导入oracle.sql.CLOB包,或者直接引用这个包
       oracle.sql.CLOB clob = rs.getClob("str");
            Reader rd= clob.getCharacterStream();// 得到流
       BufferedReader br = new BufferedReader(rd);
            String s = br.readLine();
            StringBuffer sb= new StringBuffer();
            while (s != null) {
                 // 循环赋值
                sb.append(s);
                s = br.readLine();
             }
            clobResult = sb.toString();
       }

时间: 2024-08-08 23:04:33

oracle数据库 操作clob对象的相关文章

基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具

基于OCILIB的oracle数据库操作总结 1.       类图 2.       基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* --------------------------------------------------------------------------------------------- * * INCLUDES * ----------------------------------------------

C# Oracle数据库操作类实例详解

本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长度等,同时还有哈稀表自动插入数据库等高级任务.需要特别指出的是:在执行SQL语句,返回 DataReader之前一定要先用.read()打开,然后才能读到数据,再用hashTable对数据库进行insert,update,del操作,注意此时只能用默认的数据库连接"connstr". 本文

(转)C# Oracle数据库操作类

原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.Collections.Generic;using System.Configuration;using System.Data.OracleClient;using System.Text;using System.IO; /// <summary>  /// Oracle数据库操作类  ///

查询ORACLE数据库操作记录

代码: SELECT a.First_Load_Time,        a.Sql_Text,        s.Sid,        s.Serial#,        s.Program --,        ,        a.* --       Utl_Inaddr.Get_Host_Address(s.Terminal) Ip   FROM V$sqlarea a, V$session s  WHERE s.Sql_Address(+) = a.Address    AND U

oracle数据库操作语句

常用到的oracle数据库操作语句,以下仅供参考: 一. 查询 1.查询某个数据库表大于某个日期的所有数据条数    select count(*) from ALARM_LOG t where t.ALARM_START_TIME> to_date('2017-01-10 08:00:00','yyyy-mm-dd hh24:mi:ss');   查询某个数据库表大于某个日期的所有历史数据  select * from ALARM_LOG t where t.ALARM_START_TIME>

Oracle数据库操作知道

SELECT TGTID,PHONENUM,REGISTERDATE ,to_date(REGISTERDATE,'YYYY-MM-DD HH24:MI:SS') AS T FROM WTRESSENWEB.T_AXMALL_COMMONCLIENT WHERE TGTID = '2087' AND to_date(REGISTERDATE,'YYYY-MM-DD HH24:MI:SS') > to_date('2014-07-09','yyyy-mm-dd'); 对于to_char() to_

向Oracle数据库中CLOB插入数据报错问题

今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误. 网上说用流来处理,没有这么做.这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了. 下面是这段代码: if((temp.length()>=1000)&&(temp.length()<=2000)){ temp=StringUtils.rightPad(temp, 2008); } 使用StringUtils的rightPad方法使没超过2000的部分,在右边自

给Oracle数据库中CLOB字段插入空值

遇到往ORACLE数据库中插入数据时总是报ORA-01084 invalid argument in OCI call错误,经分析是因为表中的一个字段类型为CLOB,并且可为空,当在给该字段插入空值时引发的该错误.后来判断是否为空值,如果为空值使用DBNull.Value,以此解决了该问题. Null 指的是无效的对象引用:而 DBNull 是一个类, DBNull.Value 是它唯一的实例 .DBNull 的实例 DBNull.Value是数据库表中的空数据在 .Net 代码中的表现形式.我

Python实战之Oracle数据库操作

1. 要想使Python可以操作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包 [plain] view plain copy http://cx-oracle.sourceforge.net/ 2. 另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得 [plain] view plain copy http://www.oracle.com/technetwork/