dポイントプレゼントキャンペーン実施中!

Package内で条件を判断し、Falseならexceptionを呼び出したい
(処理を中断し、残りの処理を実行したくない)のですが、
どうすれば出来るのでしょうか?

A 回答 (1件)

ユーザー定義の例外を宣言し、RAISE 文を使用して明示的に


呼び出せばOKです。
/*
========================================================================
テストパッケージ本体
========================================================================
*/
CREATE OR REPLACE PACKAGE BODY TEST IS

/*
======================================================================
テスト1 ファンクション
======================================================================
*/
FUNCTION TEST1(p1 IN VARCHAR2, p2 IN VARCHAR2) return VARCHAR2 IS
/*
======================================================================
ユーザ定義例外
======================================================================
*/
PRIVATE_ERROR EXCEPTION;
BEGIN

IF 条件式 THEN
/* ユーザ定義例外処理へ分岐 */
RAISE PRIVATE_ERROR;
END IF;
/*------------------------------------------------------*/
/* エラー処理 */
/*------------------------------------------------------*/
EXCEPTION
--例外処理
/* ユーザ定義 */
WHEN PRIVATE_ERROR THEN
/* ここに処理を記述 */

/* その他エラー */
WHEN OTHERS THEN

END TEST1;

/*
======================================================================
テスト2 プロシジャ
======================================================================
*/
PROCEDURE TEST2(p1 IN VARCHAR2, p2 IN OUT VARCHAR2) is
BEGIN
dbms_output.put_line('para1 = ' || p1);
dbms_output.put_line('para1 = ' || p2);
p2 := p1 || p2;
END TEST2;

END;
    • good
    • 0
この回答へのお礼

ありがとうございます。出来ました^^
ユーザー定義じゃないとダメってのが面倒でしたが;

お礼日時:2006/08/09 20:52

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A