保存数据到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>
相关推荐
Leon-Ning Liu14 小时前
Oracle 19c ASMB 进程 PGA 内存泄漏排查实战 (Bug 38610635)
数据库·oracle
步行cgn14 小时前
Spring 注入 null 和空字符串详解
数据库·spring·oracle
zone_z17 小时前
11 · 空间类故障排查:表空间满 / 临时表空间爆 / 归档满挂库
oracle·temp·tablespace·archive·ora-01652
干到60岁退休的码农1 天前
15.创建获取用户接口与JWT认证器
java·spring boot·mybatis
干到60岁退休的码农2 天前
16.过滤器中处理异常响应返回
java·spring boot·mybatis
严同学正在努力2 天前
认识 SQL Server 的 T-SQL 语法
数据库·人工智能·ai·oracle·dba
l1t2 天前
DeepSeek总结的chdb-core v26.7.3发版说明
数据库·clickhouse·oracle
风哥2号3 天前
数据库教程FGMT21‑Oracle RAC+DG生产实战(1):Oracle19c/26ai for RHEL8/9安装配置+补丁
数据库·oracle
风哥2号3 天前
数据库教程FGMT26‑1‑GoldenGate数据库容灾迁移01(OGG同构异构、数据库迁移、数据同步、容灾复制)
数据库·oracle
风哥2号3 天前
数据库教程FGMT25‑Oracle多租户架构CDB与PDB运维管理
数据库·oracle