0

学校名を入力して学校長を調べる

CREATE OR REPLACE PROCEDURE getHeadOfSchool( inSchoolName IN VARCHAR ) IS 
DECLARE
V_headOfSchool  school.headOfSchool%TYPE;
BEGIN
SELECT headOfSchool INTO v_headOfSchool FROM school WHERE schoolName = inSchoolName;
DBMS_OUTPUT.PUT_LINE(‘The head of the school is ’||v_headOfSchool);
END;
/

実行するとコンパイルエラーと表示されます。なんで?

4

1 に答える 1

3

DECLARE キーワードです。これは、無名 PL/SQL ブロックにのみ適用されます。ストアド プロシージャでは、IS キーワードが宣言セクションの開始を示します。

PL/SQL のドキュメントには、構文の正式な仕様と多くの例が記載されています。 詳細をご覧ください。


コンパイル エラーを表示することで、この問題を自分で解決できたはずです。PLSQL Developer、SQL Developer、TOAD などの最新の IDE では、これが自動的に行われます。SQL*Plus では、コマンドを使用できますshow errors。他のクライアントを使用している場合は、次を実行できます。

select * from user_errors
where name = 'GETHEADOFSCHOOL'; 

Oracle はそのオブジェクト名を大文字で保存することに注意してください。したがって、キャメルケースはソース コードでは非常にうまく機能しますが、アンダースコアがないため、データ ディクショナリの検索が難しくなります。

于 2013-07-19T07:08:28.887 に答える