我正在尝试创建一个带有参数的函数,然后比较两个条件。
一种方法是检查user_preference列是否具有类似'%CDN%'的值,另一种是user_name等于我们作为输入参数的值。
如果这两个条件都成功,则需要返回1,否则返回0。下面是我要放入程序包中的代码块。
create or replace function check_status(p_user_name in varchar2) return number is
ln_value number;
begin
SELECT into ln_value (CASE WHEN user_preferences like '%CDN%' THEN 1 ELSE 0 END) as Value FROM emp_users WHERE user_name=p_user_name;
return ln_value;
end;
/
当我尝试在sql developer中执行pl / sql块时,返回以下错误。您能帮我解决这个问题吗?
Error(3,5): PL/SQL: SQL Statement ignored
Error(3,12): PL/SQL: ORA-00936: missing expression
答案 0 :(得分:2)
您的SELECT语句顺序错误,请尝试
SELECT (CASE WHEN user_preferences like '%CDN%' THEN 1 ELSE 0 END)
into ln_value
FROM emp_users
WHERE user_name=p_user_name;