PL / SQLストアドプロシージャがあり、その中でいくつかの更新を実行し、例外をキャプチャしてoutパラメータで返します。簡単にするために、以下のコードブロックでは、例外コードとエラーメッセージをコンソールに出力しています。ただし、以下のコードブロックは機能しません(「見つかった/予期している」構文エラーが発生しています)
CREATE OR REPLACE PROCEDURE DBP.TESTING_SP AS
DECLARE
v_code NUMBER;
v_errm VARCHAR2(64);
BEGIN
UPDATE PS_NE_PHONE_TBL SET NE_PHONE_TYPE = 'TEST' WHERE NEMPLID_TBL = 'N14924';
EXCEPTION
WHEN OTHERS THEN
v_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1, 64);
DBMS_OUTPUT.PUT_LINE (v_code || ' ' || v_errm);
END TESTING_SP;
/
私がやろうとしていることの正しい構文は何ですか?
あるフォーラムで読んだ
「CreateまたはReplace構文を使用する場合、Declareは使用できません。Declareは名前のない匿名ブロック専用です。したがって、1行目を削除して匿名ブロックを作成するか、2行目を削除して名前付きプロシージャを作成してください。」
しかし、匿名ブロックを作成する方法や、自分がやりたいことを実行するための名前付きプロシージャを作成する方法がわかりません(それが実際に「解決策」である場合)。誰かが手を貸してもらえますか?