ユーザー定義例外を示すORA-20000エラーについて説明します。
- TOP
- 技術情報
- Oracle DB Tips
- ORA-20000:(ユーザー定義例外)
KNOWLEDGE
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
Oracle DB Tips
ユーザー定義例外を示すORA-20000エラーについて説明します。
PL/SQL を使用したプログラムにおいて、ユーザーによって定義された例外(エラー)が発生したことを示します。
なお、ユーザーが指定可能なエラーコードは ORA-20000 ~ ORA-20999 の範囲に限定されています。
SQL> begin 2 RAISE_APPLICATION_ERROR(-20000, '明示的に発生させたエラーです。'); 3 end; 4 / begin * 行1でエラーが発生しました。: ORA-20000: 明示的に発生させたエラーです。 ORA-06512: 行2
ORA-20000は一般に以下の要因で発生します。
ユーザーが定義した例外(エラー)のエラーコード、およびエラーメッセージから理由を判断します。
そのため、メッセージからエラーが発生した理由が確認できるよう、プログラムを作成することが重要です。
Oracleが提供している一部の組み込みパッケージでは、ORA-20000により例外(エラー)が通知されるケースがあります。
この場合、メッセージの内容を確認し、エラーの発生原因を確認します。
SQL> set serveroutput on size 2000 SQL> declare 2 message VARCHAR2(4000); 3 begin 4 for i in 1 .. 4000 loop 5 message := message || '0'; 6 end loop; 7 DBMS_OUTPUT.PUT_LINE(message); 8 end; 9 / declare * 行1でエラーが発生しました。: ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes ORA-06512: "SYS.DBMS_OUTPUT", 行32 ORA-06512: "SYS.DBMS_OUTPUT", 行97 ORA-06512: "SYS.DBMS_OUTPUT", 行112 ORA-06512: 行7
※一行で出力可能なバイト数(この例では2000バイト)をオーバーしたことを示す、エラーメッセージが出力されています。
マニュアルにエラーの発生原因、対処方法が記載されているケースもありますので、まずはマニュアルの確認が必要です。
マニュアルからも発生原因が確認できない場合、Oracle カスタマー・サポートに問い合わせすることを検討してください。
ORA-20000 ORA-20999 ユーザー定義例外 RAISE_APPLICATION_ERROR PL/SQL