oracle失效对象是什么意思,Oracle中⽆效数据库对象的处理⽅
Oracle中⽆效数据库对象的处理⽅法
Oracle总是会尝试⾃动重编译⽆效的PL/SQL对象和视图,但是可能不会成功。虽然Oracle可能建议⼿动地进⾏编译,不过我们并⾮必须进⾏这个操作。通常⽆效对象的产⽣是由于数据库迁移,针对⽆效对象,我们可以采取重编译和索引重建。
1.1、标识⽆效的对象
为了标识数据库中的所有⽆效的对象,我们可以作为SYSTEM⽤户或其他有权限的⽤户做如下查询。
SQL> select owner, object_name, object_type
from dba_objects
where status = 'INVALID';
1.2、修正⽆效的对象
编译对象
sql中select是什么意思SQL> alter procedure ADD_NUMS compile;
Procedure altered.
如果编译成功,就不存在问题,如果编译失败,就需要出失败的原因。
SQL> show errors
如果希望确定编译错误的原因,通常需要⾸先使⽤DBA_DEPENDENCIES视图。
SQL> desc dba_dependencies;
Name Null? Type
----------------------------------------- -------- ---------------
OWNER NOT NULL VARCHAR2(30)
NAME NOT NULL VARCHAR2(30)
TYPE VARCHAR2(17)
REFERENCED_OWNER VARCHAR2(30)
REFERENCED_NAME VARCHAR2(64)
REFERENCED_TYPE VARCHAR2(17)
REFERENCED_LINK_NAME VARCHAR2(128)
DEPENDENCY_TYPE VARCHAR2(4)
如果要重新编译成百上千的的⽆效对象,可以运⾏下⾯命令。
SQL> @?/rdbms/admin/utlrp
--编译⽆效对象脚本utlrp.sql

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。