保存数据到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>
相关推荐
Mephisto.java4 小时前
【大数据学习 | HBASE高级】hbase的参数优化
大数据·sql·oracle·sqlite·json·hbase·database
ac-er88886 小时前
ThinkPHP 模型如何更新数据
数据库·oracle·php
静止了所有花开6 小时前
SpringSSM整合
java·开发语言·mybatis
A_aspectJ6 小时前
Oracle数据库 创建dblink的过程及其用法详解
数据库·oracle
TPCloud6 小时前
详细的oracle rac维护命令集合
数据库·oracle·rac操作命令
奈斯ing7 小时前
【Oracle篇】掌握SQL Tuning Advisor优化工具:从工具使用到SQL优化的全方位指南(第六篇,总共七篇)
运维·数据库·sql·oracle
DarkAthena8 小时前
【MogDB】MogDB5.2.0重磅发布第八篇-支持PLSQL编译全局缓存
数据库·缓存·oracle
小登ai学习8 小时前
框架学习03-Spring 七大核心模块
学习·spring·oracle
redemption_220 小时前
Mybatis快速入门 ResultMap 分页的实现
数据库·oracle·mybatis