日期:2014-05-19  浏览次数:20717 次

iBatis 插入xmltype型字段,报ORA-01461错
iBatis 插入xmltype型字段时,当值大于4000字时,报如下错误:
“ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值”

java 类:
public class XmlDa extends BaseEntity {
private static final long serialVersionUID = 8613096196891810583L;

private String id;

private String xm;

private String sfzh;

private String xmldata;
                  ...
sqlMap:
<insert id="xmlda.insert2" parameterClass="com.da.dataobject.XmlDa" >
    insert into XMLDA (ID, XM,SFZH,XMLDATA)
    values (#id#,#xm#,#sfzh#,XMLType(#xmldata#))
</insert>

oracle表结构:
id    varchar2(10)
xm    varchar2(50)
sfzh  varchar2(20)
xmldata  sys.xmltype

当我的xmldata小于4000字时,是可以正常插入xmltype字段的,当大于4000时就会报上面的错误

我在想是不是要先将其转换为CLOB再进行XMLType转换,于是我将insert语句改为:
insert into XMLDA (ID, XM,SFZH,XMLDATA) values (#id#,#xm#,#sfzh#,XMLType(#xmldata:CLOB#))
但依然报上面的错误

大家有没有在iBatis下使用Oracle XMLType字段的经验,或者对上面有什么意见的分享下。


------最佳解决方案--------------------
jdbcType标准定义没有你说的类型,自己写类型转换吧!

------其他解决方案--------------------
顶一下
------其他解决方案--------------------
iBatis 下XMLType的应用没人用过吗?
------其他解决方案--------------------
引用:
jdbcType标准定义没有你说的类型,自己写类型转换吧!

类型转换?能说具体点吗
或者有没有简单的例子
------其他解决方案--------------------
请问此问题是否已经解决?能否告知解决思路?