保存数据到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>
相关推荐
_苏沐5 小时前
cte功能oracle与pg执行模式对比
数据库·oracle
Blossom.11813 小时前
从“能写”到“能干活”:大模型工具调用(Function-Calling)的工程化落地指南
数据库·人工智能·python·深度学习·机器学习·计算机视觉·oracle
不秃的开发媛14 小时前
Java连接池详解:从Oracle到TiDB的随缘之旅
java·oracle·tidb
嘻嘻哈哈曹先生14 小时前
Oracle数据库
数据库·oracle
0_0梅伊阁诗人16 小时前
Django ORM 模型
开发语言·数据库·笔记·python·oracle·django
数巨小码人18 小时前
Oracle SQL调优技巧实战指南
数据库·sql·oracle
noravinsc18 小时前
在银河麒麟v10上安装达梦8数据库
服务器·数据库·oracle
哈喽姥爷20 小时前
Spring Boot--yml配置信息书写和获取
java·数据库·spring boot·mybatis
lu9up2 天前
因表并行引发的血案【故障处理案例】
数据库·oracle·dba
奔跑你个Run2 天前
mybatis plus 使用wrapper输出SQL
mybatis