Оператор SQL игнорируется и отсутствует выражение для функции - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь создать функцию, которая принимает параметр, а затем сравнивает два условия.

Один проверяет, имеет ли столбец user_preference значение "% CDN%", а другой - имя_пользователя, равное параметру, который мы взяли в качестве ввода.

Если эти два условия выполнены успешно, необходимо вернуть 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;
/

когда я пытаюсь выполнить PL / SQL-блок в SQL-разработчике, он возвращает ошибки ниже. Не могли бы вы помочь мне решить эту проблему.

Error(3,5): PL/SQL: SQL Statement ignored
Error(3,12): PL/SQL: ORA-00936: missing expression

1 Ответ

0 голосов
/ 02 ноября 2018

Вы получили оператор 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...