OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ORACLE PL/SQLの例外処理について

  • すぐに回答を!
  • 質問No.233074
  • 閲覧数1897
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 20% (1/5)

ストアドプロシージャを登録したところ、「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")。行の残りは無視されました。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 40% (404/988)

こんにちは。

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;
/

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

参考になれば、でわ。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル6

ベストアンサー率 33% (4/12)

Haizyさんの言うとおり、1行目で構文エラーです。 PROCEDUREの綴りが間違っているように見えますが。。。 ここに記載した内容が間違っているだけでしょうか? Haizyさんへ。 パッケージでなくても、例外処理は記載できます。 パッケージで作成しているのは、プロジェクト内での コーディングルール等ではないのでしょうか?
Haizyさんの言うとおり、1行目で構文エラーです。
PROCEDUREの綴りが間違っているように見えますが。。。
ここに記載した内容が間違っているだけでしょうか?

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


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ