Java对Oracle数据库Clob字段的查询处理

Java对Oracle数据库Clob字段的查询处理

发现问题

当我们遇到Oracle中的Clob类型时,该如何处理呢?

处理方法

常用的有三种处理方法
1.使用dbms_lob.substr函数将Clob字段转为字符串类型。

select dbms_lob.substr(F_BUSS_NAME) as F_BUSS_NAME ,F_DATA_ID from T_DEMO t  where 1=1

2.使用dbms_lob.substr带偏移量函数将Clob字段转为字符串类型。

select dbms_lob.substr(F_BUSS_NAME,1000,1) as F_BUSS_NAME ,F_DATA_ID from T_DEMO t  where 1=1

3.以上两种方法都有缺点:当数据长度大于4000/3时,oralce数据库会报异常:缓冲区较小。所以采用Java程序处理的方式,长度限制扩大为String的变量长度限制:2的31次方约等于2G。(String的常量类型大小限制为65534)。

select F_BUSS_NAME ,F_DATA_ID from T_DEMO t  where 1=1
 if (colValue instanceof Clob) {
  	Clob clob=(Clob) colValue;
  	if(clob!=null){
  		colValue=clob.getSubString((long)1, (int)clob.length());
  	}
   }

结论

使用上述方法三可以完整地获取Clob类型字段,推荐使用。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值