SQL模糊查询报:ORA-00909:参数个数无效问题的解决

 更新时间:2021年06月21日 14:23:08   作者:dqcer  
这篇文章主要介绍了SQL模糊查询报:ORA-00909:参数个数无效问题的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

用oracle数据库进行模糊查询时,

控制台报错如下图所示:

原因是因为敲的太快,语法写错了

正确的写法是

pd.code like concat(concat('%',#{keyword}),'%')

java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效

用MyBatis进行多参数模糊查询的时候遇到这个异常,看了下打印日志,发现异常出在预编译之后,插入实参的时候。

==> Preparing: select role_id, role_name, note from t_role where role_name like concat('%', ?, '%') and note like concat('%', ?, '%')
2018-12-13 20:24:28,567 DEBUG [com.ss.learn.chapter3.mapper.RoleMapper.getRolesByIdAndNote] - ==> Parameters: 1(String), 1(String)

异常提示:参数个数无效。检查了下SQL语句

select role_id, role_name, note from t_role
where role_name like concat('%', ?, '%') and note like concat('%', ?, '%') 

发现问题出现在concat上,concat是连接两个字符串的函数,这里连接了三个,把SQL改成两个concat嵌套的

<select id="getRolesByIdAndNote" parameterType="map" resultType="role">
        select role_id, role_name, note from t_role 
        where role_name like concat(concat('%', #{roleName}), '%')
        and note like concat(concat('%', #{note}), '%')
    </select>

总结

运行成功啦!以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家!

相关文章

  • mysql启动错误之mysql启动报1067错误解决方法

    mysql启动错误之mysql启动报1067错误解决方法

    MYSQL启动报1067错误,系统日志中是“服务 mysql 意外停止” Mysql日志中则是:Plugin 'FEDERATED' is disabled,下面给出解决方法
    2014-02-02
  • MySQL在grant时报错ERROR 1064 (42000)的原因及解决方法

    MySQL在grant时报错ERROR 1064 (42000)的原因及解决方法

    网上查到的grant方式大多会报错,主要原因是MySQL版本8.0后不能再使用原来的方式,这篇文章主要介绍了MySQL在grant时报错ERROR 1064 (42000),需要的朋友可以参考下
    2022-08-08
  • MySQL单表恢复的步骤

    MySQL单表恢复的步骤

    这篇文章主要介绍了MySQL单表恢复的步骤,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL中count(distinct col...)组合使用的注意要点详解

    MySQL中count(distinct col...)组合使用的注意要点详解

    @count()是一个聚合函数,返回指定匹配条件的行数,开发中常用来统计表中数据、全部数据、不为null数据或者去重数据,这篇文章主要给大家介绍了关于MySQL中count(distinct col...)组合使用的注意要点,需要的朋友可以参考下
    2024-08-08
  • mysql递归查询所有子集的实现方法

    mysql递归查询所有子集的实现方法

    本文主要介绍了mysql递归查询所有子集的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • Mysql 5.6

    Mysql 5.6 "隐式转换"导致的索引失效和数据不准确的问题

    这篇文章主要介绍了Mysql 5.6 “隐式转换”导致的索引失效和数据不准确的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • MySQL 如何处理隐式默认值

    MySQL 如何处理隐式默认值

    这篇文章主要介绍了MySQL 处理隐式默认值的相关资料,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-12-12
  • MySQL HandlerSocket插件安装配置教程

    MySQL HandlerSocket插件安装配置教程

    这篇文章主要介绍了MySQL HandlerSocket插件安装配置,包括PHP HandlerSocket插件的安装配置,需要的朋友可以参考下
    2014-04-04
  • MySQL分区之LIST分区详解

    MySQL分区之LIST分区详解

    mysql分区之LIST分区讲解 MySQL中的LIST分区在很多方面类似于RANGE分区,下面这篇文章主要给大家介绍了关于MySQL分区之LIST分区的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • MySQL数据优化-多层索引

    MySQL数据优化-多层索引

    这篇文章主要介绍了MySQL数据优化 多层索引,文章围绕MySQL数据优化 多层索引的相关资料展开详细的内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12

最新评论