为什么这个代码:
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'给出以下错误:
ORA-06553: PLS-49: bad bind variable 'PARAM'
06553. 00000 - "PLS-%s: %s"
*Cause:
*Action:
Error at Line: 6 Column: 46发布于 2021-04-12 00:37:38
我假设您已经声明了param绑定变量;如果没有,那么这是您的第一个问题。
您不需要一个函数:
select *
from my_table
where my_col LIKE '%' || LOWER( :param ) || '%'如果您真的想要一个函数(不要因为它会阻止您在列上使用索引),那么将绑定值作为参数传递:
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'https://stackoverflow.com/questions/67050848
复制相似问题