SQL语句忽略和缺少函数的表达式

时间:2018-11-02 14:51:36

标签: sql oracle plsql

我正在尝试创建一个带有参数的函数,然后比较两个条件。

一种方法是检查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

1 个答案:

答案 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;