1

Oracle pl/sqlのOra-XXXXX例外とPLS-XXXXX例外の根本的な違いは何ですか。私の理解によると、ORAはデータベースエラーに関連しており、PLSはプログラミングエラーのためのもので、このトピックに光を当てることができます. 前もって感謝します !

4

1 に答える 1

9

さまざまなエラー メッセージのプレフィックスの意味は、ドキュメントでは明確に説明されていないようです。それらはエラー メッセージ マニュアルでグループ化されていますが、各グループが何に関連しているかは実際には述べられていませんが、通常はメッセージ自体から解決できます。

しかし、あなたはおおむね正しいです。少なくとも、PLS エラーは PL/SQL に関連しています。ORA エラーは広範囲に及び、定義方法によっては、その多くが「プログラミング」エラーが原因である可能性があります。

エラーメッセージの紹介には次のように書かれています:

表示されるすべてのメッセージには、メッセージを発行したプログラムを示すテキストが接頭辞として付けられます。たとえば、プレフィックス「ORA」は、メッセージが Oracle 製品によって生成されたことを示します。

これは Oracle のドキュメントであるため、エラーが Oracle 製品によって生成されたと言ってもあまり意味がなく、ORA 以外のコードも Oracle 製品に由来します。

SQL*Plus ユーザー ガイドには、もう少し関連性の高い要約が含まれています

エラーが文字「ORA」で始まる番号付きのエラーである場合は、Oracle Databaseエラー・メッセージ・ガイドまたはオペレーティング・システム用に提供されているプラ​​ットフォーム固有のOracleドキュメントでOracle Databaseメッセージを調べてください。

エラーが「PLS」の文字で始まる番号付きのエラーである場合は、『Oracle Database PL/SQL言語リファレンス』でOracle Databaseメッセージを調べてください。

... PLS エラーは別のドキュメントに記載されていないため、ドキュメントのバグのように見えます。主なエラー ドキュメントには、コア ORA エラーと、PLS エラーを含む特定の製品からの他の多くのプレフィックスの両方が含まれており、「メッセージは 1 つの製品に固有のものであり、その製品のマニュアルに記載されている」ことにも注意してください。

Oracle 9iのエラー メッセージに戻ると、接頭辞の意味についての説明が表示されます。それによると、PLS は「PL/SQL および FIPS メッセージ」です。それ以降のリリースにはありません。おそらく、製品間の境界が曖昧すぎて意味がありません。どのグループがメッセージを製品のコードに割り当てる責任を負っているかに大きく依存していると思います.製品が買収され、オラクルのポートフォリオに採用された場所には、ある程度歴史的な重要性があるかもしれません. .

ツールのoerr使用法ステートメントでは、接頭辞を「施設」と呼んでいますが、これもあまり役に立ちません。

PLS エラーが表示された場合、そのエラーは、作成した PL/SQL コードや PL/SQL ブロックに起因するものである必要はありません。関数は(通常)PL/SQLで実装されているため、PLSエラーを取得できるSQLから関数を呼び出すことができます。また、PL/SQL のコンパイル中に ORA エラーが発生する場合があります。

したがって、区別が完全に明確かどうかはわかりませんが、あまり役に立ちません。エラーの接頭辞に関係なく、エラー メッセージ ブックで調べて、その意味と解決方法を確認できます。

于 2013-08-22T17:36:17.453 に答える