Oracle数据库大字段问题
来源:互联网 发布:网络型组织结构优缺点 编辑:程序博客网 时间:2024/04/30 10:42
Oracle数据库大字段问题
问题描述:字段内容长度超4000
最近项目中存在用某些字段存预处理sql语句,最初,项目此类型字段用varchar2(4000),但随着项目跟进到二期,牵连的表越来越多,存在预处理索引,中间临时表的问题,预处理SQL字段长度超过4000。
oracel默认varchar2类型是不能超过4000的
我们都知道,oracel默认varchar2类型是不能超过4000的,如果类型超过4000的数据插入会自动转为long型数据插入,所以问题来了。
所以我将表中需要超过4000内容的字段该文long型,接下来问题又来了。
oracle一个表中最多只能有一个long型字段
我们又知道,oracle一个表中最多只能有一个long型字段,所以这种解决方案又不适合解决业务需求了,经查询oracle推荐用clob字段类型存储。
这里需要简单普及一下clob和blob的知识:CLOB(Character Large Object) 字符大对象,Blob(Binary Large Object)二进制大对象。
由字面意思可以简单的辨别根据需求选择不同的对应类型,我们项目中这个字段全是文字形式的预处理sql,所以选择了clob,如果在遇到文件、视频、音频等可以选择blob哈。
好吧,既然oracle推荐使用这种clob方式存储超4000的字符内容,那我就选择呗。
接下来问题又来了:这是一种对象存储方式,如何存取呢?
简单的举个栗子吧:
为了使用方便我们肯定要进行数据封装,简单写个类似bean
Class User
Clob sqla;
Clob sqlb;
以及对应的set get方法。
我们在遍历查询结果集ResultSet的时候将对应的结果user.setClob(rs.getClob(“sqla”));
因为我们要用clob里面的内容信息,将Clob转为String使用呗
这就对了塞。在user对象能存储进sqla这个clob对象了吧,是我们就将其取出来用呗,
简单测试一下System.out.println(user.getSqla().toString());
这我们都知道,这打印出来是对象地址对吧。
查询了下怎么将clob转String,我在用的时候将clob转为String使用呗,就查了一下写工具类,方便使用的时候调用
public static String clobToString(CLOB clob) throws SQLException, IOException { result clob != null ? clob.getSubString(1, (int) clob.length()): null;}
当jdbc返回给我user对象后我在使用的地方调用clobToString(user.getSqls()),抛出的异常是:连接数据库才能操作。
写了一个stringToClob(String string) 方法返回Clob对象,关键代码如下:
new javax.sql.rowset.serial.SerialClob(s.toCharArray());这就是将字符串变为char数组利用jdbcApi转换。在使用的地方调用同样报出需要连接数据库才能操作。所以经研究发现,在jdbc外面String与clob互转是会出错的。整文的核心:将转换代码在jdbc 操纵是使用。
- Oracle数据库大字段问题
- Oracle数据库导出大字段(CLOB)数据
- Oracle数据库导出大字段(CLOB)数据
- Oracle查询clob大字段的问题
- oracle数据库-表空间不一样导致blob等大字段导入失败问题
- Oracle中的大字段
- oracle大字段
- Oracle的大字段
- BLOB大字段问题
- Oracle解决导入CLOB大字段数据失败的问题
- oracle 大字段的使用
- oracle 插入大字段procedure
- oracle 读取blob大字段
- 【转载】Oracle 大字段处理
- Oracle 大字段类型处理
- JDBC获取数据库大字段
- mybatis 大字段问题处理
- Mysql的大字段问题
- 01安卓目录结构
- webView怎么保存设置Cookie
- speedphp 命名规则 404 自定义类库,函数库
- bzoj3316: JC loves Mkk
- Effective OC 笔记 1了解Objective-C 语言的起源
- Oracle数据库大字段问题
- 用css设置鼠标光标
- 强连通分量korasaju算法
- Fragment的深入探究
- C语言之strcat函数
- 第九章 Crawling Through Forms and Logins
- android 有效的图片压缩方法
- 多边形切割模板
- WKWebView 的使用(和js交互)