内置对象Clob对从数据库表中取的字符大对象CLOB类型的列值进行读取操作

 1 package readclobDemo.bao;
 2
 3 import java.io.IOException;
 4 import java.io.Reader;
 5 import java.sql.Clob;
 6 import java.sql.Connection;
 7 import java.sql.PreparedStatement;
 8 import java.sql.ResultSet;
 9 import java.sql.SQLException;
10
11 import jdbcutil.bao.JdbcUtil;
12
13 public class ReadClobDemo {
14
15     /**
16      CLOB用于存储大量的字符数据,程序的主要功能为从数据库中通过jdbc获取CLOB字段,将其转化为IO进行读取,
17       所以首先通过查询语句得到CLOB字段,再将CLOB从结果集中获得并将其转化为oracle.sql.CLOB类型进行写入操作
18      * @throws IOException
19      */
20
21
22
23     /* CREATE TABLE "HR"."CLOB_1"
24        (    "ID" NUMBER(*,0),
25             "CLOB_TEXT" CLOB
26        ) SEGMENT CREATION IMMEDIATE *///在oracle创建表CLOB_1;
27
28     public static void readclob(int id) throws IOException{
29
30
31         Connection conn=null;
32         PreparedStatement patst=null;
33         ResultSet rs=null;
34         String sql="select * from CLOB_1 where id=?";
35         try {
36             conn=JdbcUtil.getConnection();   //通过获得数据连接池JdbcUtil中分配的数据库连接接口进行数据库的连接
37             patst=conn.prepareStatement(sql);
38             patst.setInt(1, id);
39             rs=patst.executeQuery();    //返回结果集;
40
41             if(rs.next()){
42
43                 Clob clob=rs.getClob("CLOB_TEXT");  //Clob对象在它被创建的事务处理期间有效
44                 Reader rd=clob.getCharacterStream();
45
46                 char[] chars = new char[1024];   //定义一个字符数组
47
48                    int length=0;
49
50                    System.out.print("CLOB_TEXT:");
51                  //通过Io流读取返回int字节值转化为char类型直到没有字节,返回-1
52                    while((length=rd.read(chars)) != -1) {
53
54                     if(length==1024){
55
56                     System.out.print(chars);
57
58                     }else{
59
60                     System.out.print(new String(chars,0,length));//不够长度1024的字符数组只显示有值的字符串
61
62                    }
63
64              }
65
66
67           }
68
69         } catch (SQLException e1) {
70             e1.printStackTrace();
71         } finally{
72             JdbcUtil.free(rs, patst, conn);//调用JdbcUtil定义的free方法关闭各接口;
73         }
74
75
76     }
77     public static void main(String[] args) throws IOException {
78
79                readclob(1);
80
81     }
82
83 }

时间: 2024-10-08 15:24:18

内置对象Clob对从数据库表中取的字符大对象CLOB类型的列值进行读取操作的相关文章

C# 将DataTable表中的数据批量插入到数据库表中的方法

C#中有时候需要将内存中的数据批量插入到数据库表中,使用for循环进行批量插入不但耗时而且会频繁操作数据库. 针对数据量很少的可以使用for循环插入,但是针对于数据量大的则不推荐使用for循环插入,推荐使用sql的块处理插入. 块处理不但耗时少而且不会频繁对数据库进行操作,只是需要注意的一点是DataTable中的列必须与表的列完全一致. 如下代码是批量插入的一个函数,自测可用. 1 #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 2 /// <summa

通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中  先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数

百度地图的使用之获取数据库表中信息的坐标点显示在地图上

//通用封装好的js: var map = new BMap.Map("container"); //建树Map实例 var point = new BMap.Point(103.976032, 33.845509); // 建树点坐标 map.centerAndZoom(point, 6); // 初始化地图,设置中心点坐标和地图级别. //地图事件设置函数: map.enableDragging(); //启用地图拖拽事件,默认启用(可不写) map.enableScrollWhe

定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据?

原文:http://www.iteye.com/problems/77856 定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据? 表结构肯定是不能破坏,但是临时表如果是自己的数据库还行,问题是这个Oracle数据库是客户的数据库呢,你不能在他的数据库做任何多余的操作吧?还有别的更好的方法吗? 这个真的是比较困难. 首先,你要从客户机oracle取数据,因为这1分钟间隔之内不知道用户机新增加了哪些数据(大部分情况下是用户使用别的系统插入数据,而你又没有这个系统的程序接口

FineUI之使用SQL脚本从数据库表中生成相应的输入控件

在WEB开发时,经常需要依据数据库表中的字段建立相应的输入控件,来获取输入的数据.每次都需要按字段来敲,显然太低效,而且容易出错.这里提供一个SQL脚本生成相应输入控件的方法. USE DBDemo DECLARE @TEMP_TABLE_NAME NVARCHAR(512) DECLARE @WIDTH NVARCHAR(50) SET @TEMP_TABLE_NAME='Stuff' SET @WIDTH='200' SELECT '<f:'+TOKEN+' runat="server

对数据库表中的某一字段去重分组排序

1.问题背景    某数据库t_tab_ab中有两个字段a和b,如下所示:    查询前:                 查询后:    a     b                  a     b    1     2                  1     2    1     3                  2     3    1     4                  3     4    1     5    2     3    2     4    2  

关于数据库表中的索引及索引列的CRUD

-- 查询一个数据库表中的索引及索引列use [RuPengWangDB]GOSELECT  indexname = a.name , tablename = c. name , indexcolumns = d .name , a .indidFROM    sysindexes a JOIN sysindexkeys b ON a .id = b .id  AND a .indid = b.indid        JOIN sysobjects c ON b .id = c .id    

将txt文件内容导入sql server 数据库表中

将类似这样的txt文件,如何导入到sql server 数据库表中呢? 第一步,在开始菜单中 找到 sql server 的导入和导出数据 然后,在数据源 的下拉框中 选择 平面文件源 基本都是点击 下一步 选择好要导入数据的数据库 与表: 编辑映射 : 点击下一步 执行 然后 完成 查看数据库 表 数据已经导入 成功

将Hive统计分析结果导入到MySQL数据库表中(三)——使用Hive UDF或GenericUDF

前面我分别介绍了两种Hive将分析结果导入到MySQL表的两种方式:Sqoop导入方式和使用Hive.MySQL JDBC驱动,现在我介绍第三种,也是使用比较多的方式--使用Hive 自定义函数(UDF或GenericUDF)将每条记录插入到数据库表中. 一.使用UDF方式 使用UDF方式实现比较简单,只要继承UDF类,并重写evaluate方法即可 1.编写实现类 package com.gxnzx.hive.udf; import org.apache.hadoop.hive.ql.exec