アプリ版:「スタンプのみでお礼する」機能のリリースについて

ストアドプロシージャを登録したところ、「EXCEPTION」キーワードをORACLEが
認識してくれずエラーが返ってきました。どうしてか教えて下さい。
よろしくお願いします
プロシージャのコード)
CREATE OR REPLACE PRCEDURE TEST_PROC(
P1 OUT NUMBER,
P2 OUT VARCHAR2 ) AS
BEGIN
UPDATE VIEW経理システム制御F SET 処理状況 = '';
COMMIT;
EXCEPTION WHEN OTHERS THEN
P1 := SQLCODE;
P2 := SQLERRM;
END;
/

登録時のメッセージ)
エラー行: 1: エラーが発生しました。
ORA-00922: オプション指定されていないか、または無効です
不明なコマンドです(開始"EXCEPTION ...")。行の残りは無視されました。
不明なコマンドです(開始"P1 := SQLC...")。行の残りは無視されました。
不明なコマンドです(開始"P2 := SQLE...")。行の残りは無視されました。
不明なコマンドです("END")。行の残りは無視されました。

A 回答 (2件)

こんにちは。



1行目で、エラーなのでそもそも、プロシージャ構文では無いでしょうか?

ORACLEって、パッケージにしなければならないのでは???
  ↑
ウチのプロジェクト中の勝手なルールかも(^^;

とりあえず、パッケージにしてみてはどうでしょう。
TEST_PACKという、パッケージにする例

CREATE OR REPLACE PACKAGE BODY TEST_PACK AS
  PROCEDURE TEST_PROC( 
  P1 OUT NUMBER,
  P2 OUT VARCHAR2 ) AS
  BEGIN
  UPDATE VIEW経理システム制御F SET 処理状況 = '';
  COMMIT;
  EXCEPTION WHEN OTHERS THEN
  P1 := SQLCODE;
  P2 := SQLERRM;
END TEST_PACK;
/

では、だめですか?
目的と違うかもしれませんが・・・。
なんか、動いているのを見ると、どうも、ウチのはパッケージになってるようなので。

参考になれば、でわ。
    • good
    • 0

Haizyさんの言うとおり、1行目で構文エラーです。


PROCEDUREの綴りが間違っているように見えますが。。。
ここに記載した内容が間違っているだけでしょうか?

Haizyさんへ。
パッケージでなくても、例外処理は記載できます。
パッケージで作成しているのは、プロジェクト内での
コーディングルール等ではないのでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!