Подтвердить что ты не робот

Условия стека в инструкции CASE в PL/SQL

Я использую Oracle 10g, и я пытаюсь "стекать" условия в выражении CASE, как я бы сделал в С++:

case 1:
case 2:
    // instructions
    break;

то есть. с тем же кодом кода, выполненным для двух разных успешных условий.

Я пробовал:

WHEN 1, 2 THEN
WHEN 1 OR 2 THEN

... без везения. Возможно ли это?

EDIT - полный фрагмент

CASE v_n
  WHEN (1 OR 2) THEN
    dbms_output.put_line('Case 1 or 2');
  WHEN 3 THEN
    dbms_output.put_line('Case 3'); 
END CASE;

Генерация выражения неверно.

4b9b3361

Ответ 1

Вам необходимо использовать этот формат:

CASE
  WHEN v_n = 1 OR v_n = 2 THEN
    dbms_output.put_line('Case 1 or 2');
  WHEN v_n = 3 THEN
    dbms_output.put_line('Case 3'); 
END CASE;

Ответ 2

Можно использовать IN так же, как в SQL:

BEGIN
  CASE 
    WHEN EXTRACT(YEAR FROM SYSDATE) IN (2015, 2016, 2017) THEN
      dbms_output.put_line('Yes');
    ELSE
      dbms_output.put_line('No');
  END CASE;
END;
/