0

このエラーで AQ テーブル 'SYSTEM.DEF$_AQCALL' を削除するときに失敗したデータベースを更新しようとしていました。

//------------

1. SqlBRuntimeException: Dropping Tables failed after 6/179 items (1 errors)

2. SqlBException: Fatal error executing resource: clean\tables\def$_aqcall

3. QueryException: Error executing resource (delimiter = '/'): clean\tables\def$_aqcall

4. QueryException: Error executing SQL statement (errcode=24005, sqlstate=99999: ORA-24005: Inappropriate utilities used to perform DDL on AQ table SYSTEM.DEF$_AQCALL):

DROP TABLE def$_aqcall CASCADE CONSTRAINTS

5. SQLException: errorcode=24005, sqlstate=99999, line=-1: ORA-24005: Inappropriate utilities used to perform DDL on AQ table SYSTEM.DEF$_AQCALL

//------------

次に、手動でキューを停止し、「強制」オプションを使用してキュー テーブルを削除しようとしましたが、うまくいきませんでした。

キューを停止すると、これがエラーになります。

//-------------------------------------

Error starting at line 5 in command:
BEGIN
   DBMS_AQADM.STOP_QUEUE(
      queue_name        => 'SYSTEM.DEF$_AQCALL');
END;

Error report:
ORA-04063: package body "SYS.DBMS_AQADM_SYS" has errors
ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_AQADM_SYS"
ORA-06512: at "SYS.DBMS_AQADM", line 464
ORA-06512: at line 2
04063. 00000 -  "%s has errors"
*Cause:    Attempt to execute a stored procedure or use a view that has
           errors.  For stored procedures, the problem could be syntax errors
           or references to other, non-existent procedures.  For views,
           the problem could be a reference in the view's defining query to
           a non-existent table.
           Can also be a table which has references to non-existent or
           inaccessible types.
*Action:   Fix the errors and/or create referenced objects as necessary.

//--------

を使用して「DBMS_AQADM_SYS」パッケージをチェックしています。

select owner,object_name,object_type,status from dba_objects where object_name='DBMS_AQADM_SYS';

「パッケージ本体」のステータスが「INVALID」であることを示しており、これが上記のエラーの原因である可能性があると思います。

次のステップは、このパッケージを再コンパイルして、パッケージ内の問題を修正することでした。

パッケージを SYSDBA として再コンパイルしました。

EXECUTE UTL_RECOMP.RECOMP_SERIAL();

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_recomp.htm#i1000051に従って

これはエラーなしで完了しましたが、パッケージ本体のステータスは「無効」のままです。

使ってみた

sqlplus / as sysdba @?/rdbms/admin/utlrp 

DBMS_METADATAおよびその他のパッケージは無効ですが、それでもうまくいきません。

いくつかのフォーラムをチェックしたところ、誰もがパッケージを再コンパイルすることを提案しています。

この問題について何か洞察があれば感謝します。

ありがとう。

4

1 に答える 1