只有dba_objects 试图显示 回收站中的对象

Summary

After creating a custom Oracle10g database with the Ultrasearch component configured, you check DBA_OBJECTS to see whether any objects are invalid and you find that one or more triggers (owned by the WK_TEST schema) are listed as invalid. For example:

SQL> select owner, object_name, object_type from dba_objects where status='INVALID';

OWNER OBJECT_NAME OBJECT_TYPE

WK_TEST BINI9rjO2Nrz43gQJQKQSwgzw==0 TRIGGER

When you check DBA_TRIGGERS, no triggers are listed as invalid.

When you check DBA_RECYCLEBIN, you find the original name of the trigger (before it was moved to the recyclebin). For example:

SQL> select owner,object_name,original_name, type from dba_recyclebin where

object_name='BINI9rjO2Nrz43gQJQKQSwgzw==0'

OWNER OBJECT_NAME ORIGINAL_NAME TYPE

WK_TEST BINI9rjO2Nrz43gQJQKQSwgzw==0 WK$UPD_TRIG TRIGGER

and when you check DBA_OBJECTS, you find that the original trigger is valid. For example:

SQL> select owner, object_name, object_type, status from dba_objects where object_name='WK$UPD_TRIG';

OWNER OBJECT_NAME OBJECT_TYPE STATUS

WK_TEST WK$UPD_TRIG TRIGGER VALID

In summary, the DBA_OBJECTS view lists an invalid trigger but further investigation shows that the trigger is in the recyclebin and is no longer required (as it has been re-created).

This problem may affect Oracle10g databases that do not have the Ultrasearch component configured, but the schema that owns the trigger(s) will be different.

Solution

To purge an invalid trigger from the recyclebin, and stop it from being referenced in DBA_OBJECTS, do the following:

  1. Identify the table that the trigger is based on (and any other indexes/triggers that are based on the same table). For example:

SQL> select owner, object_name, original_name, type from dba_recyclebin where base_object = (select base_object from dba_recyclebin where object_name='BINI9rjO2Nrz43gQJQKQSwgzw==0');

OWNER OBJECT_NAME ORIGINAL_NAME TYPE

WK_TEST BINI9rjO2Nnz43gQJQKQSwgzw==0 WK$URL_DSID_STATUS_IDX INDEX

WK_TEST BINI9rjO2Noz43gQJQKQSwgzw==0 WK$URL_DSID_ENQ_IDX INDEX

WK_TEST BINI9rjO2Npz43gQJQKQSwgzw==0 WK$URL_ACCESS_URL_IDX INDEX

WK_TEST BINI9rjO2Nqz43gQJQKQSwgzw==0 WK$URL_PK INDEX

WK_TEST BINI9rjO2Nrz43gQJQKQSwgzw==0 WKUPD_TRIG TRIGGER **WK_TEST BINI9rjO2Nsz43gQJQKQSwgzw==0 WKURL TABLE**

  1. Purge the table from the recyclebin. For example:

SQL> purge table WK_TEST."BINI9rjO2Nsz43gQJQKQSwgzw==0";

  1. Verify that the invalid trigger is no longer referenced in DBA_OBJECTS

  2. Repeat steps 1-3 for any other invalid triggers in the recyclebin

@ Added for WebIV searches:

Attachments :

Cause

The table that the trigger is based on was dropped and re-created, but the dropped table (and any associated triggers or indexes) were not purged from the recyclebin.

In Oracle10g, Development have made a small change to some of the data dictionary views.

This change means that most views will display objects that are currently in the recyclebin but some views will not display objects that are currently in the recyclebin.

The views that will not display objects that are currently in the recyclebin are:

  • the *_TABLES family of views (DBA_TABLES, USER_TABLES, ALL_TABLES)
  • the *_INDEXES family of views (DBA_INDEXES, USER_INDEXES, ALL_INDEXES)
  • the *_TRIGGERS family of views (DBA_TRIGGERS, USER_TRIGGERS, ALL_TRIGGERS)

Other views (like the *_OBJECTS family of views) will display objects that are currently in the recyclebin

相关推荐
自己的九又四分之三站台2 小时前
GeoPackage 到底适合什么场景:从 SQLite 容器到空间数据格式选型
数据库·oracle·sqlite
路远的数据库笔记20 小时前
SQL Server迁移国产数据库怎么做?九套口岸库零停机割接实战
数据库·经验分享·sqlserver·dba
lie..21 小时前
30天从零开始学AI应用开发(Day 17):ChromaDB 上手:给本地文档建一个“外挂大脑”
数据库·人工智能·oracle
其实防守也摸鱼1 天前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化
我叫洋洋2 天前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路
晚风叙码2 天前
MySQL 表的操作:从建表到删表,一篇讲清楚
android·mysql·oracle
其实防守也摸鱼2 天前
渗透测试学习计划(全栈综合 · 零基础进阶)
android·数据库·学习·安全·oracle·自动化·学习方法
无忧.芙桃2 天前
网络安全与个人信息保护
oracle
泡海椒2 天前
数据占比展示:jquick-pdf饼图动态数据渲染PDF教程
数据库·oracle·pdf
jnrjian3 天前
Connect Microsoft Tools to Oracle Databases powerbi 之类的oracle 客户端
数据库·microsoft·oracle