0

簡単なOracleストアドプロシージャを作成しようとしています。

CREATE OR REPLACE PROCEDURE act.skeleton
IS
DECLARE
  v_rowCount NUMBER;
BEGIN
  SELECT COUNT(1) INTO v_rowCount FROM ex.emp;
  DBMS_OUTPUT.PUT_LINE(v_rowCount);
END;

ただし、PL / SQL Developerのコマンド・ウィンドウで発行execute act.skeletonしてプロシージャを実行しようとすると、次のエラーメッセージが表示されます。

ORA-06550: line 1, column 11:
PLS-00905: object ACT.SKELETON is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

createprocedureステートメントなしでコードを実行しようとしましたが、出力が表示された状態で正常に実行されました。CREATE OR REPLACE PROCEDURE IS&オプションの両方を試しましCREATE OR REPLACE PROCEDURE ASたが、それでも同じエラーが発生します。

act.skeletonこれが、プロシージャを実行しようとしたときの認証やプロシージャの可視性、またはオブジェクトが無効になる原因と関係があるかどうかはわかりません。エラーの意味を調べたところ、通常はプロシージャのコンパイルエラーを指しているようですが、プロシージャ宣言なしでコードを実行できるため、宣言部分が原因であると推測されます。私はこれを引き起こしている原因を理解するのに十分なことを知りません、そして私は誰かがそれにもう少し光を当てて私を正しい方向に向けることができることを望んでいました

ありがとう、

Ashish

その他の情報:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
4

1 に答える 1

2

DECLAREストアド プロシージャの宣言でキーワードを使用しないでください。それを削除すると、コンパイルされるはずです。

于 2010-05-10T17:15:35.247 に答える