您不能“自然地”导致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
如果您必须从 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;
然后调用它:
select raise_600 from dual