Oracle Database エラー「PL/SQL: Compilation unit analysis terminated」が発生した場合の対処法

Oracle Database エラー「PL/SQL: Compilation unit analysis terminated」が発生した場合の対処法

Oracle Databaseで、エラー「PL/SQL: Compilation unit analysis terminated」が発生した場合の対処法を記述してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition
  • SQL Developer 21.2.1.204

エラー本文

パッケージ作成時に発生。

Package Body PKGTESTがコンパイルされました

LINE/COL  ERROR
--------- -------------------------------------------------------------
0/0       PL/SQL: Compilation unit analysis terminated
1/14      PLS-00201: 識別子PKGTESTを宣言してください。
1/14      PLS-00304: コンパイル済の仕様がないためPKGTESTの本体をコンパイルできません。
エラー: コンパイラ・ログを確認してください

原因

「仕様部」を作成せずに「本体部」を作成していたため

対処法

「仕様部」をコンパイルしてから

CREATE OR REPLACE PACKAGE pkgtest AS
--ファンクション
FUNCTION calcfun (
  x IN NUMBER,
  y IN NUMBER
) RETURN NUMBER;

--プロシージャ
PROCEDURE calcpro (
  x IN NUMBER,
  y IN NUMBER
);

END;
/

「本体部」をコンパイルする。

-- 本体部
CREATE OR REPLACE PACKAGE BODY pkgtest AS
  --ファンクション
  FUNCTION calcfun(x IN NUMBER, y IN NUMBER) RETURN NUMBER
  IS
    z NUMBER;
  BEGIN
    z := x * y;
    RETURN z;
  END calcfun;

  --プロシージャ
  PROCEDURE calcpro(x IN NUMBER, y IN NUMBER)
  IS
    z NUMBER;
  BEGIN
    z := x + y;
  END calcpro;
  
END pkgtest;
/