MyBatis ORA-01465: 无效的十六进制数字

mybatis,ora,无效,十六进制,数字 · 浏览次数 : 244

小编点评

The error message indicates a problem with the provided SQL syntax. The issue is with the `to_date()` function used in the `CREATE_TIME` column definition. The `to_date()` function is not required for `DATE` data type, and its use in this context is causing the error. **Modified SQL Syntax:** ```sql -- Trim prefix and suffix characters for clarity trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" -- Use the appropriate data type for the `CREATE_TIME` column create_time TIMESTAMP; -- Remove the to_date() function create_time = #{createTime,jdbcType=TIMESTAMP}; -- Other column definitions ... ``` **Additional Notes:** * The `patientId` and `conclusion` values are specified using conditional expressions, which are enclosed within the `if` statements. * The `jdbcType` for the `conclusion` value is assumed to be `VARCHAR`. * The `#` symbol is used to represent the parameter values within the `insert` statement.

正文

MyBatis 在插入 Oralce 时报:ORA-01465: 无效的十六进制数字
解决方法:

# 插入或更新时
String -> BLOB字段:RAWTOHEX(#{字段名})
String -> DATE:to_date(#{字段名},'yyyy-mm-dd hh24:mi:ss')
# 查询时
BLOB -> String:UTL_RAW.CAST_TO_VARCHAR2(字段名)
DATE -> String:to_char(字段名,'yyyy-mm-dd hh24:mi:ss')
<resultMap id="ReportResultMap" type="com.vipsoft.Report">
    <id column="PACS_NO" property="custodyNo" jdbcType="VARCHAR"/>
    <result column="PATIENT_ID" property="patientId" jdbcType="VARCHAR"/> 
    <result column="INSPECT_CONTENT" property="conclusion" jdbcType="VARCHAR"/> 
</resultMap>


<select id="getCustodyOrder" parameterType="com.vipsoft.Report" resultMap="CustodyResultMap">
    SELECT PATIENT_ID,UTL_RAW.CAST_TO_VARCHAR2(t.INSPECT_CONTENT) as INSPECT_CONTENT
    FROM Report t WHERE t.PACS_NO= #{reportNo}
</select>
<insert id="insert" parameterType="com.vipsoft.Report">
    insert into Report
    <trim prefix="(" suffix=")" suffixOverrides=","> 
        <if test="patientId != null" >PATIENT_ID,</if> 
        <if test="conclusion != null" >INSPECT_CONTENT,</if>
        <if test="createTime != null" >CREATE_TIME,</if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=","> 
        <if test="patientId != null" >#{patientId,jdbcType=VARCHAR},</if> 
        <if test="conclusion != null" >RAWTOHEX(#{conclusion,jdbcType=VARCHAR}),</if> 
        <!--Date 型的 createTime 不需要做 to_date 转换-->
		<if test="createTime != null" >#{createTime,jdbcType=TIMESTAMP},</if>
    </trim>
</insert>

与MyBatis ORA-01465: 无效的十六进制数字相似的内容:

MyBatis ORA-01465: 无效的十六进制数字

MyBatis 在插入 Oralce 时报:ORA-01465: 无效的十六进制数字 解决方法: # 插入或更新时 String -> BLOB字段:RAWTOHEX(#{字段名}) String -> DATE:to_date(#{字段名},'yyyy-mm-dd hh24:mi:ss') # 查

Mybatis执行器

mybatis执行sql语句的操作是由执行器(Executor)完成的,mybatis中一共提供了3种Executor: 类型 名称 功能 REUSE 重用执行器 缓存PreparedStatement,下一次执行相同的sql可重用 BATCH 批量执行器 将修改操作记录在本地,等待程序触发或有下一

『手写Mybatis』实现映射器的注册和使用

前言 如何面对复杂系统的设计? 我们可以把 Spring、MyBatis、Dubbo 这样的大型框架或者一些公司内部的较核心的项目,都可以称为复杂的系统。 这样的工程也不在是初学编程手里的玩具项目,没有所谓的 CRUD,更多时候要面对的都是对系统分层的结构设计和聚合逻辑功能的实现,再通过层层转换进行

MyBatis 的缓存机制

1. MyBatis 的缓存机制 @目录1. MyBatis 的缓存机制2. 准备工作3. MyBatis 的一级缓存3.1 一级缓存失效情况/条件4. MyBatis 的二级缓存5. MyBatis 集成 EhCache 第三方缓存6. 总结:7. 最后: 缓存(Cache) 缓存的作用:通过减少

MyBatis的逆向工程详细步骤操作

1. MyBatis的逆向工程详细步骤操作 @目录1. MyBatis的逆向工程详细步骤操作2. 逆向工程配置与生成2.1 MyBatis3Simple:基础版,只有基本的增删改查2.1.1 第一步:在pom.xml 中添加逆向工程插件2.1.2 第二步:配置 generatorConfig.xml

MyBatis 关于查询语句上配置的详细内容

1. MyBatis 关于查询语句上配置的详细内容 @目录1. MyBatis 关于查询语句上配置的详细内容2. 准备工作3. SQL查询结果,返回为POJO实体类型4. SQL查询结果,返回为List 集合类型5. SQL查询结果,返回为Map 集合6. SQL查询结果,返回为List

MyBatis 的在使用上的注意事项及其辨析

1. MyBatis 的在使用上的注意事项及其辨析 @目录1. MyBatis 的在使用上的注意事项及其辨析2. 准备工作3. #{ } 与 ${ } 的区别和使用{}3.1 什么情况下必须使用 $3.1.1 拼接表名3.1.2 批量删除3.1.3 模糊查询3.1.3.1 使用 ${ }的方式3.1

面试必会 --> MyBatis篇

什么是MyBatis Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 MyBatis 可以使用 XM

从Mybatis-Plus开始认识SerializedLambda

从Mybatis-Plus开始认识SerializedLambda 背景 对于使用过Mybatis-Plus的Java开发者来说,肯定对以下代码不陌生: @TableName("t_user") @Data public class User { private String id; private

Mybatis-Plus最优化持久层开发

Mybatis-plus:最优化持久层开发 一:Mybatis-plus快速入门: 1.1:简介: Mybatis-plus(简称MP)是一个Mybatis的增强工具,在mybatis的基础上只做增强不做改变; 提高效率; 自动生成单表的CRUD功能; 提供了丰富的条件拼接方式; 全自动ORM类型持