保存数据到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>
相关推荐
HalvmånEver7 小时前
MySQL的增删改查命令合集合集
数据库·sql·oracle
夕除8 小时前
springboot--06
数据库·spring boot·mybatis
运维小子9 小时前
JumpServer Applet 发布自定义远程应用:Oracle SQL Developer 自动登录
数据库·sql·oracle·jumpserver
码农阿豪10 小时前
AI时代,国产数据库的黄金机遇:以KB数据库为例,看自主创新如何引领未来
数据库·人工智能·oracle
曹牧12 小时前
Oracle:将包含属性(Attributes)的 XML 数据解析为表格数据
xml·数据库·oracle
Java成神之路-12 小时前
MyBatis一级缓存与二级缓存深度解析
mybatis
身如柳絮随风扬12 小时前
MyBatis 与 Spring 中的设计模式
spring·设计模式·mybatis
深蓝轨迹14 小时前
Spring Data JPA 实战指南:从基础配置到高级技巧
数据库·oracle·spring data jpa
MandalaO_O14 小时前
SQL 注入
数据库·oracle
范什么特西17 小时前
第一个Mybatis
java·开发语言·mybatis