保存数据到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>
相关推荐
minebmw711 分钟前
Oracle 19.29 中 ORA-00600 [4193] 错误完全解析与恢复指南
数据库·oracle
风子杨yxf7714 小时前
linux下oracle开机自启动以及关机自关闭数据库,并发送邮件通知
linux·运维·数据库·oracle·自启动·发邮件·自关闭
数厘8 小时前
2.18 sql排序查询(ORDER BY、ASC、DESC)
数据库·sql·oracle
oradh11 小时前
Oracle数据库完整性约束概述
数据库·oracle·数据库基础·数据库入门·oracle数据完整性·oracle数据库约束类型
IT邦德12 小时前
Update Advisor:Oracle MAA架构下数据库补丁管理
数据库·oracle·架构
oradh13 小时前
Oracle数据库索引簇表和哈希簇表概述
oracle·哈希算法·oracle基础·oracle数据库基础·索引簇表·哈希簇表
minebmw714 小时前
Oracle 19.29 中 ORA-00600 [4000] 错误完全解析
数据库·oracle
战族狼魂14 小时前
40x40 矩阵控制系统
jvm·oracle·矩阵
fly spider15 小时前
MySQL之优化
数据库·mysql·oracle
老苏畅谈运维15 小时前
服务器重启后数据库无法打开,记一次ORA-00600 [2252]故障修复记
数据库·oracle