如何在Oracle中刷新数据字典?

前端之家收集整理的这篇文章主要介绍了如何在Oracle中刷新数据字典?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在oracle中删除了一些表
DROP TABLE hr.admin_emp CASCADE CONSTRAINTS;

但已删除表的主键约束仍在数据字典中(all_constraints).现在我的问题是如何更新数据字典,以便它不显示删除表的主键?例如,我使用此查询来选择hr模式:

SELECT A.TABLE_NAME,A.COLUMN_NAME,A.CONSTRAINT_NAME FROM ALL_CONS_COLUMNS A,ALL_CONSTRAINTS B WHERE B.OWNER='HR' AND A.OWNER='HR'AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND B.constraint_type='P';

结果是:

REGIONS                        REGION_ID
COUNTRIES                      COUNTRY_ID
LOCATIONS                      LOCATION_ID
DEPARTMENTS                    DEPARTMENT_ID
JOBS                           JOB_ID
EMPLOYEES                      EMPLOYEE_ID
JOB_HISTORY                    EMPLOYEE_ID
JOB_HISTORY                    START_DATE
BIN$rRfAMUTnQROvBfuhBCT6RQ==$0 ID
BIN$87Rd5FE7Rj2eQbim0H2EzA==$0 PK_B
BIN$bQeeD0M/QMSpLzYjZqAGeA==$0 PK_A
BIN$RzMu6nZiQ2yuj+4xQf7eAQ==$0 PK_A

具有奇怪表名的行是我删除的那些.

你丢弃的表是 in the recycle bin.

您的原始约束名称不可见 – 您无法再看到主键名称(在该视图中;您可以从user_recyclebin中检索它) – 但约束仍然在内部可用,因此如果您在restore the table with flashback table hr.admin_emp to before drop中可以快速恢复.

数据字典视图中显示为BIN $…的对象只有在purge回收站时才会消失.但是一旦你这样做,它们就永远消失了,如果不恢复整个数据库就无法恢复它们,所以只有在你确定不再需要它们时才这样做.

您不能,也不应该,也不能尝试手动更新任何数据字典对象或Oracle内部管理的任何其他内容.

原文链接:https://www.f2er.com/oracle/205240.html

猜你在找的Oracle相关文章