2016-04-15 17 views
1

SQLコマンドごとに発生する可能性のある例外のリストを探しています。たとえば :SQLコマンドごとのPossible例外のリスト

Procedure p1 
as 
    l_cnt number; 
Begin 
    Select count(*) 
    Into l_cnt 
    From xyz; 
Exceptions 
    When ... Then 
    ... 
End; 

は、今私は、このSELECT INTOステートメントで発生する可能性のある例外思ったんだけど:私は、次のコードを持っている場合。私はいくつか知っているが、彼らはすべてそこにいるのだろうか?だからこそ私はSQLごとに考えられる例外の概要を探しています。

PLSQL内でSQLコードによって発生する可能性のあるすべての例外をキャッチすることをお勧めしますか? 私には「未知」の例外をキャッチするための唯一の方法である「他人」がわかります。 もちろん、SQLの可能性のある例外のリストが非常に長い場合、私は関連するexeptionsを処理し、他のものを「他のときに」キャッチします。

ご連絡いただきありがとうございます!

+0

@MitchWheat、不明な表、列など – jarlh

+1

@jarlh:表がない場合、プロシージャーをコンパイルできません。プロシージャーを作成した後に表をドロップすると、プロシージャーは無効になります。実行してください。 –

+0

私のコメントは、selectがエラーを発生させる可能性があるかどうかに関するものです。 「選択はどのようにエラーを発生させるのですか?」に答えます。 – jarlh

答えて

1

あなたの質問はかなり一般的です。

たとえば、クエリは以下の例外につながることができますが:

  • TIMEOUT_ON_RESOURCE - タイムアウトデータベースはリソース
  • STORAGE_ERRORを待っている間に発生した - PL/SQLがなくなりましたメモリまたはメモリが壊れていた

予期される例外をofficial documentationから学習し、適切なものを選択することをお勧めしますそれぞれの場合について。

+0

私はこのリストを知っています。しかし、そこに記載されているすべての例外がすべての陳述書の権利に発生するわけではありませんか?ではどのようにフィルタリングすればいいですか?あなたがリストしたものを私に教えてください。 – SebastianK

+0

あなたの例では、私は具体的なexaptionsを使用しません No_data_foundとto_many_rowsが最も多く使用されています Rarly - %_cursor、index_dub_value、無効な数値、ゼロである –

+0

その他は、 –