保存数据到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>
相关推荐
云策数链4 小时前
用友 T+Cloud / U8 项目交接时的账套健康度核查清单
数据库·oracle·erp·用友·云策数链
jnrjian5 小时前
Oracle RAC crs stop时force 关闭DB,另一个node会立即进行recover
数据库·oracle
次次皮5 小时前
Oracle判空踩坑(对比mysql)
数据库·mysql·oracle
znnnk15 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle
胖头鱼的鱼缸(尹海文)1 天前
胖头鱼的技术专栏-482 Oracle AI DB 23.26.4新特性一览(20261027)
数据库·人工智能·oracle
代码不停1 天前
MyBatis操作数据库
数据库·mybatis
wno7041 天前
Spring Boot中JdbcTemplate与Mybatis使用PostgreSQL
spring boot·postgresql·mybatis
欢醉1 天前
Flink实时同步Oracle到StarRocks的几个踩坑经验分享
starrocks·oracle·flink
lzhdim2 天前
100条常用SQL语句
数据库·sql·mysql·mybatis
心静财富之门2 天前
Python 数据共享四种方案完整实例(同进程 / JSON / Redis / HTTP)
数据库·python·oracle