保存数据到Oracle时报错ORA-17004: 列类型无效: 1111

1、问题描述:

关键信息:Mybatis;Oracle

(1)保存信息到Oracle时报错:

Caused by: org.apache.ibatis.type.TypeException: Error setting null for parameter #10 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: ORA-17004: 列类型无效: 1111

(2)Oracle字段:

TRX_CHANL VARCHAR2(2) DEFAULT '',

varchar 类型 可空

(3)mapper.xml

XML 复制代码
<resultMap id="baseResultMap" type="com.xxx.infra.po.XXXInfoPO">
    <result column="trx_chanl" jdbcType="VARCHAR" property="trxChanl"/>
</resultMap>

<insert id="insert" parameterType="com.xxx.infra.po.XXXInfoPO">
        insert into xxx_info (msg,trx_chanl) values (#{msg},#{trxChanl})
</insert>

2、解决

XXXInfoPO 没有给 属性trxChanl赋值时,保存Oracle就会报错 列类型无效: 1111,这时需要给属性trxChanl 指定属性的类型 #{trxChanl,jdbcType=VARCHAR (注意没有"")。这点Oracle跟MySQL是不一样的

XML 复制代码
<insert id="insert" parameterType="com.xxx.infra.po.XXXInfoPO">
 insert into xxx_info (msg,trx_chanl) values (#{msg,jdbcType=VARCHAR},#{trxChanl,jdbcType=VARCHAR})
</insert>
相关推荐
ClouGence33 分钟前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
ClouGence6 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
曹牧7 天前
Oracle EXPLAIN PLAN
数据库·oracle
贤时间7 天前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心7 天前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
敲个大西瓜7 天前
mybatis拦截器插件实现数据库字段加解密
mybatis
Curvatureflight7 天前
MySQL 深分页越来越慢?从 LIMIT OFFSET 改成游标分页
数据库·oracle
XZ-0700017 天前
MySQL事务
数据库·mysql·oracle
tiancaijiben7 天前
阿里云函数计算FC如何实现网站的定时任务与自动化
数据库·oracle·dba