СЛУЧАЙ Oracle с ИЛИ

Если Вы ожидаете, пока страница не загружается, и затем установила дисплей кнопки ни на один, который должен работать. Тогда можно сделать его видимым позже.

6
задан Niche 23 October 2018 в 05:47
поделиться

2 ответа

have you tried putting your OR statement in parens?

 CASE WHEN (A > 0 OR B >0) THEN c=1 END;
9
ответ дан 8 December 2019 в 16:08
поделиться

Вы разместили выражение CASE, но назвали его оператором CASE. Наверное, отсюда и путаница. Выражение CASE действительно:

SQL> declare
  2    bool boolean;
  3    a    int := 1;
  4    b    int := 0;
  5    c    int := 1;
  6  begin
  7    bool := CASE WHEN A > 0 OR B >0 THEN c=1 END;
  8    if bool is null
  9    then
 10      dbms_output.put_line('NULL');
 11    elsif bool
 12    then
 13      dbms_output.put_line('TRUE');
 14    else
 15      dbms_output.put_line('FALSE');
 16    end if;
 17  end;
 18  /
TRUE

PL/SQL procedure successfully completed.

Но вы, вероятно, хотели использовать оператор CASE, который заканчивается на «END CASE» вместо «END». Пример:

SQL> declare
  2    a    int := 1;
  3    b    int := 0;
  4    c    int;
  5  begin
  6    case
  7    when a > 0 or b > 0 then
  8      c := 1;
  9    end case
 10    ;
 11    dbms_output.put_line(c);
 12  end;
 13  /
1

PL/SQL procedure successfully completed.

С уважением, Роб.

6
ответ дан 8 December 2019 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: