保存数据到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>
相关推荐
龙猫蓝图2 小时前
wrapper+ xml文件进行SQL编写
mybatis
ss2733 小时前
手写MyBatis第104弹:SqlSession从工厂构建到执行器选择的深度剖析
java·开发语言·后端·mybatis
@PHARAOH4 小时前
WHAT - SQLite 数据库
数据库·oracle·sqlite
一路向北_Coding9 小时前
MyBatis Generator让你优雅的写SQL
mysql·mybatis
莫陌尛.10 小时前
SSM(Spring+SpringMVC+Mybatis)整合
java·spring·mybatis
2301_7976042412 小时前
d41:MyBatisPlus入门,注解,配置,条件构造器,自定义SQL,IService
sql·mybatis
色空大师12 小时前
【mybatisPlus详解】
java·mybatis·mybatisplus
尘下吹霜12 小时前
【鉴权架构】SpringBoot + Sa-Token + MyBatis + MySQL + Redis 实现用户鉴权、角色管理、权限管理
spring boot·mysql·mybatis
wxjlkh13 小时前
Oracle Exadata一体机简介 1千多个W
数据库·oracle
小陈爱coding1 天前
SaaS多租户数据隔离实战:MyBatis拦截器实现行级安全方案
安全·云原生·mybatis·多租户