ORACLE concat 报错 ORA-00909:参数个数无效
sql如下
select * from test where name like concat('%', #{name}, '%') ;
Oracle CONCAT函数只允许两个值连接在一起。如果需要连接多个值,可以嵌套多个CONCAT函数调用,比如 concat(concat('%', #{name}), '%') 这种,或者使用||也可以拼接 '%'||#{name}||'%'
另一种拼接字符串的函数是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}值与%符号连接起来,生成一个匹配模式。请注意,您需要确保在使用参数时使用正确的占位符语法,这取决于您使用的编程语言和框架。