2016-05-22 7 views
0

したがって、以下の手順でINパラメータとして日付を受け取ります。誤ったタイプのパラメーターが渡された場合、パラメーターがCURSOR宣言セクションで使用されているため、例外領域はそれを捕捉することができません。CURSOR宣言より発生したexpectionを処理する方法

PROCEDURE ABC(p_date IN DATE) 
IS 
    CURSTOR cur 
    IS 
    SELECT * 
    FROM table 
    WHERE table.date = TRUNC(p_date); 
BEGIN 
do something; 
EXCEPTION 
    WHEN OTHERS THEN 
    do something; 
END; 

ユーザーが間違ったパラメータの種類合格した場合:

BEGIN 
ABC(123); 
END; 

を私はエラー「『ABC』への呼び出しで引数の数が間違っかのタイプの」取得します。

このシナリオでこのエラーを処理する方法はありますか?

+1

エラーはカーソルに表示されず、プロシージャを呼び出すときに表示されます。 procはDATEを受け入れますが、NUMBERを渡します。変換番号 - >日付が失敗する - したがってエラー – micklesh

+0

ありがとう。誤ったパラメータが渡された場合、例外を処理する方法はありませんか? – Dorisacat

+0

それはしません。プロシージャーが呼び出されたときにいつも例外を処理することができます。 – micklesh

答えて

0

Mickleshは正しいです。プロシージャの呼び出しのエラーは、呼び出されたプロシージャによって処理されないため、呼び出しプロシージャで処理する必要があります。

関連する問題