You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle PL/SQL中如何在带%通配符的LIKE语句中使用变量

Oracle PL/SQL中LIKE子句传入带通配符变量的方法

你原有代码的核心错误是Oracle使用||作为字符串拼接操作符,不支持+做字符串拼接——+在Oracle中仅用于数值运算,直接用它拼接%和变量会触发隐式类型转换错误,无法实现预期的模糊匹配逻辑。

正确写法

直接通过||将前后的%通配符与目标变量拼接后传入LIKE条件即可,完全保留通配符匹配能力:

declare
  variables VARCHAR2(200):= 'exemple';
  V1 integer ;
BEGIN
  select COUNT(*) into V1 
  from user_source 
  where name LIKE '%' || variables || '%';

  DBMS_OUTPUT.PUT_LINE(V1);
END;
/

等价替代写法

如果不想用拼接符,也可以用Oracle内置的CONCAT函数实现相同效果。注意Oracle的CONCAT函数仅支持传入2个参数,拼接三段内容需要嵌套调用:

-- 与上面拼接写法逻辑完全一致
where name LIKE CONCAT(CONCAT('%', variables), '%')

补充提示:如果变量值本身包含%、_这类LIKE语法里的特殊通配符,且你需要把这些字符作为普通文本匹配,需要额外加ESCAPE关键字定义转义符做转义处理,无特殊字符的常规模糊匹配场景直接用上述写法即可。

内容的提问来源于stack exchange,提问作者Mohamedmehdi Ellouze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:06:17