表から1つの値を選択するPL/SQL関数があるとします。クエリでレコードが返されない場合は、が呼び出されたときに、より意味のあるエラーメッセージが表示されるように、NO_DATA_FOUND
エラーを伝播して(呼び出しコードで捕捉できるように)したいと考えています。ここでPL/SQLでエラーが発生したときに、より意味のあるメッセージを提供
は私が達成しようとしているものの例である:
FUNCTION fetch_customer_id(customer_name VARCHAR2) RETURN NUMBER;
customer_id NUMBER;
BEGIN
SELECT customer_id
INTO customer_id
FROM CUSTOMERS
WHERE customer_name = fetch_customer_id.customer_name;
RETURN customer_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
meaningful_error_message := 'Customer named ' || customer_name || ' does not exist';
RAISE;
END;
はNO_DATA_FOUND
エラーでmeaningful_error_message
を関連付ける方法はありますか?
更新:NO_DATA_FOUND
が検出されたとき、私はカスタムエラーコードを高めるためにRAISE_APPLICATION_ERROR
を使用することが示唆されています。この質問の目的は、呼び出しコードがカスタムエラーコードではなくエラーNO_DATA_FOUND
をキャッチできるように、この手法を回避できるかどうかを判断することでした。キャッチNO_DATA_FOUND
は、より意味的に正しいようですが、私は間違っている可能性があります。
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/errors.htm#sthref2006 – Mac
カスタムエラーコードではなく、私にとっては、それは意味的にはそれほど正しいと思われる。しかし、あなたの応答をありがとう! :) –