The ``++CASE++`` statement should be used only to clearly define some new branches in the control flow. As soon as a ``++WHEN++`` clause contains too many statements this highly decreases the readability of the overall control flow statement. In such case, the content of ``++WHEN++`` clause should be extracted in a dedicated function.

== Noncompliant Code Example

----
CASE my_variable
  WHEN 0 THEN -- 6 lines till next WHEN
    procedure1;
    procedure2;
    procedure3;
    procedure4;
    procedure5;
  WHEN 1 THEN
-- ...
END CASE;
----

== Compliant Solution

----
DECLARE
  PROCEDURE do_something AS
  BEGIN
    procedure1;
    procedure2;
    procedure3;
    procedure4;
    procedure5;
  END;
BEGIN
  CASE my_variable
    WHEN 0 THEN
      do_something;
    WHEN 1 THEN
-- ...
  END CASE;
END;
/
----

ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]
