0

ストアド プロシージャを作成し、エラーなしで正常にコンパイルしました。ただし、匿名ブロック内で呼び出すと、エラー メッセージが返されますPLS-00201: identifier 'DUE_FOR_RAISE' must be declared。何が間違っているようですか?プロシージャの呼び出しに何か問題がありますか? これは私が手順を呼び出すために使用したものです: BEGIN due_for_raise('Austin'); END;

4

1 に答える 1

1

これは、プロシージャ名を引用したためです (決してこれを行わないでください)。プロシージャに名前を付けるために使用したのとまったく同じ大文字と小文字を引用符で囲んで呼び出す必要があるため、次のようになります。

BEGIN 
   "due_for_raise"('Austin'); 
END;

古いプロシージャを削除して、名前を引用せずに再作成する方が簡単な場合。

Database Object Names and Qualifiersに関するドキュメントから引用するには:

データベース・オブジェクト名に引用符付き識別子を使用することはお薦めしません。これらの引用符で囲まれた識別子は SQL*Plus で受け入れられますが、データベース オブジェクトを管理する他のツールを使用する場合は無効になる場合があります。

于 2013-10-28T08:13:59.060 に答える