LXa*_*ndR 4 sql oracle plsql ora-00600
出于测试目的,我需要一些SQL脚本,这些脚本将导致ORA-00600Oracle 11.1.0.7版中的错误.
数据库不是空的,它充满了全新安装的Vision Demo电子商务套件的数据.
该系统是学习Oracle的学生的培训场所.它将用于开发他们的故障排除技能.为何选择SQL?因为这个脚本的复制应该是自动的.我们将随机化问题发生,以创建一个真正的窃听系统模型,用于掌握故障排除活动.
我究竟需要的是4-5种不同的导致ORA-00600错误的方法.
注意:此问题不是解释ORA-600错误是什么,或者如何解决它们.这个问题是关于故意造成 ORA-600错误.
你不能"自然地" 造成ORA-00600 ; 它是一个涵盖内部Oracle异常的通用异常.因此,除非您知道导致此问题的Oracle错误或者想要故意破坏您的数据库,否则您将无法做到这一点.
你可以做的是自己引发一个应用程序错误,它可以模仿该异常:
declare
internal_exception EXCEPTION;
PRAGMA EXCEPTION_INIT( internal_exception, -600 );
begin
raise internal_exception;
end;
/
declare
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], [], [], [], [], []
ORA-06512: at line 5
Run Code Online (Sandbox Code Playgroud)
如果必须从SQL执行此操作,则可以将上述内容转换为函数:
create or replace function raise_600 return number is
internal_exception EXCEPTION;
PRAGMA EXCEPTION_INIT( internal_exception, -600 );
begin
raise internal_exception;
return 1;
end;
Run Code Online (Sandbox Code Playgroud)
然后就叫它:
select raise_600 from dual
Run Code Online (Sandbox Code Playgroud)