ORACLE concat 报错 ORA-00909:参数个数无效

ORACLE concat 报错 ORA-00909:参数个数无效
sql如下
select * from test where name like concat('%', #{name}, '%') ;

Oracle CONCAT函数只允许两个值连接在一起。如果需要连接多个值,可以嵌套多个CONCAT函数调用,比如 concat(concat('%', #{name}), '%') 这种,或者使用||也可以拼接 '%'||#{name}||'%'

  • 这篇博客: Oracle中的'||'与concat()中的 concat() 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 另一种拼接字符串的函数是concat()

    select concat(‘A’,‘B’) from dual;
    结果:AB

    concat()‘||’ 不同在于,concat()只能对两个字符串进行拼接(字符串多的话只能嵌套使用),而** ‘||’ **可以对字符串无限拼接。

    SQL>SELECT ename||’ is a '||job AS “Employee Details” FROM emp;
    则查询结果为:

    Employee Details
    ---------------------------

    SMITH is a ClERK
    ALLEN is a SALESMAN
    WARD is a MANAGER

在Oracle中,应该使用“||”运算符来连接字符串,而不是使用“concat”函数。
尝试使用以下SQL语句:
select * from test where name like '%' || #{name} || '%';
这将把输入的#{name}值与%符号连接起来,生成一个匹配模式。请注意,您需要确保在使用参数时使用正确的占位符语法,这取决于您使用的编程语言和框架。