clob在oracle 10g 和oracle 9i clob 的区别

http://wdmcln.iteye.com/blog/153606

 

最近,在做历史数据迁移项目时,用hibernate3.2 插入clob时,总会出现
Xml代码 复制代码
  1. <SPAN style="FONT-SIZE: x-small">ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值</SPAN>  
ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值

 刚开始的时候以为是程序问题,首先从程序入手解决,然后根据错误提示信息,再从网上搜所相关资料,有的说是oracle驱动的bug,还有说是oracle dbManager设置问题,比如参数设置,约束等等,但这都不是问题的根本!后来,通过查看hibernate日志发现,在oracle10g 插入clob和oracle9i插入clob会出现不同的情况

 1.Oracle 10 g

Java代码 复制代码
  1. Hibernate.createClob(/*直接插入超长字符*/)  
Hibernate.createClob(/*直接插入超长字符*/)
Java代码 复制代码
  1. 正常插入,看来10g已经解决clob超大字符的限制  
正常插入,看来10g已经解决clob超大字符的限制

2.Oracle 9 i

Java代码 复制代码
  1. Hibernate.createClob(/*直接插入超长字符*/)  
Hibernate.createClob(/*直接插入超长字符*/)
Java代码 复制代码
  1. <SPAN style="FONT-SIZE: x-small">不能正常插入,会出现<SPAN>ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值,经过</SPAN></SPAN>  
不能正常插入,会出现ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值,经过
Java代码 复制代码
  1. <SPAN style="FONT-SIZE: x-small">一次次的测试,发现当</SPAN>  
一次次的测试,发现当
Java代码 复制代码
  1. <SPAN style="FONT-SIZE: x-small">Hibernate.createClob("")的情况是正常插入</SPAN>  
Hibernate.createClob("")的情况是正常插入
Java代码 复制代码
  1. <SPAN style="FONT-SIZE: x-small">看来9i是需首先创建一个emptyClob,创建自身的游标,才能正常插入的</SPAN>  
看来9i是需首先创建一个emptyClob,创建自身的游标,才能正常插入的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值