Oracle ORAエラー PL/SQL その他

ORAエラーを強制的に発生させる方法|PRAGMA EXCEPTION_INIT, event の設定・解除方法

ORAエラーを発生させる方法

PRAGMA EXCEPTION_INIT PL/SQL を利用すると可能

例えばORA-8103を発生させてみたい場合

実行例

declare
err exception;
PRAGMA EXCEPTION_INIT(err,  -8103);
begin
    raise err;
end;
/

ERROR at line 1:
ORA-08103: object no longer exists
ORA-06512: at line 5

event 設定・解除方法

トレース出力もさせることができるため、イベント設定の確認に使うこともできる

設定方法

alter system set event='8103 trace name errorstack level 3; name systemstate level 10' scope=spfile;
alter system set events '8103 errorstack(3) systemstate(10)';

解除方法

alter system set event='8103 trace name errorstack off; name systemstate off' scope=spfile;
alter system set events '8103 off';

アラートログ

2022-02-16T11:09:02.828039-05:00
Errors in file /u01/app/orcl/diag/rdbms/orcl/orcl/trace/orcl_ora_13107.trc:
ORA-08103: object no longer exists
2022-02-16T11:09:05.340604-05:00
System State dumped to trace file /u01/app/orcl/diag/rdbms/orcl/orcl/trace/orcl_ora_13107.trc

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

EXCEPTION_INIT Pragma
EXCEPTION_INIT Pragma

docs.oracle.com

-Oracle, ORAエラー, PL/SQL, その他
-,