首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle -“坏绑定变量”和绑定变量在函数中

Oracle -“坏绑定变量”和绑定变量在函数中
EN

Stack Overflow用户
提问于 2021-04-11 22:44:14
回答 1查看 113关注 0票数 1

为什么这个代码:

代码语言:javascript
复制
with
function qry(v in varchar2) return varchar2 is
   begin
      return owa_util.ite(v like ('%' || lower(:param) || '%'),'Y','N');
   end;
select * from my_table where qry(my_col) = 'Y'

给出以下错误:

代码语言:javascript
复制
ORA-06553: PLS-49: bad bind variable 'PARAM'
06553. 00000 -  "PLS-%s: %s"
*Cause:    
*Action:
Error at Line: 6 Column: 46
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-12 00:37:38

我假设您已经声明了param绑定变量;如果没有,那么这是您的第一个问题。

您不需要一个函数:

代码语言:javascript
复制
select *
from   my_table
where  my_col LIKE '%' || LOWER( :param ) || '%'

如果您真的想要一个函数(不要因为它会阻止您在列上使用索引),那么将绑定值作为参数传递:

代码语言:javascript
复制
WITH FUNCTION qry(
    value  IN VARCHAR2,
    filter IN VARCHAR2
  ) RETURN VARCHAR2
  IS
  BEGIN
    RETURN CASE WHEN v LIKE '%' || lower(filter) || '%' THEN 'Y' ELSE 'N' END;
  END;
SELECT *
FROM   my_table
WHERE  qry(my_col, :param) = 'Y'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67050848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档