PL/SQLのCASE文のELSEって省略できない

PL/SQLを実行すると、

エラーコード: ORA-06592
詳細: CASE文の実行中にCASEが見つかりません

となってしまった場合は、 OraclePL/SQLに記載したCASE WHEN ... END CASEでELSEを省略している可能性あり。

https://www.366service.com/jp/qa/82975fbbfe8c0f01d07862451289b7c4

oracle公式のマニュアル (https://docs.oracle.com/cd/E15817_01/appdev.111/e05670/controlstructures.htm)[4 PL/SQLの制御構造の使用] の「例4-6 単純なCASE文」を見ると、

SQL> DECLARE
  2    grade CHAR(1);
  3  BEGIN
  4    grade := 'B';
  5
  6    CASE grade
  7      WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('Excellent');
  8      WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('Very Good');
  9      WHEN 'C' THEN DBMS_OUTPUT.PUT_LINE('Good');
 10      WHEN 'D' THEN DBMS_OUTPUT.PUT_LINE('Fair');
 11      WHEN 'F' THEN DBMS_OUTPUT.PUT_LINE('Poor');
 12      ELSE DBMS_OUTPUT.PUT_LINE('No such grade');
 13    END CASE;
 14  END;
 15  /
Very Good

PL/SQL procedure successfully completed.

SQL>

とあり、

選択子の後に1つ以上のWHEN句があり、各句が順番にチェックされます。

選択子の値によって、どの句が実行されるかが決定されます。

選択子の値がWHEN句の式の値と等しければ、そのWHEN句が実行されます。

たとえば、最後の例では、gradeが'C'であれば、'Good'が出力されます。

実行が失敗することはなく、WHEN句が1つでも実行されると、制御が次の文に渡されます。

ELSE句の機能は、IF文のELSE句に似ています。

前述の例では、学年がWHEN句のオプションの1つでなければ、ELSE句が選択され、'No such grade'という句が出力されます。

ELSE句はオプションです。

ただし、ELSE句を省略すると、PL/SQLでは次の暗黙的なELSE句が追加されます。

ELSE RAISE CASE_NOT_FOUND;

という説明がある。 省略すると「CASEがないとエラーを上げます」ってこと。 つまり、PL/SQLのELSEは省略できないってことだよね。紛らわしい。