ORA-20005: object statistics are locked (stattype = ALL)
ORA-06512: 在 "SYS.DBMS_STATS", line 23829
ORA-06512: 在 "SYS.DBMS_STATS", line 23880
ORA-06512: 在 line 1
SQL>
*** 根据报错,通过user_TAB_STATISTICS查看当前用户下对象的lock状态,再通过存储dbms_statS.unlock_table_stats 解锁。
查看锁情况:
SQL> SELECT D.TABLE_NAME,STATTYPE_LOCKED FROM USER_TAB_STATISTICS D WHERE D.TABLE_NAME = 'BASE_ROLE';
TABLE_NAME STATTYPE_LOCKED
----------------------------- ---------------
BASE_ROLE ALL
锁状态为all,如下对BASE_role表unlock,并再次检查锁状态;
SQL> execute dbms_statS.unlock_table_stats(ownname=>'U1',tabname =>'BASE_ROLE');
PL/SQL procedure successfully completed
SQL> SELECT D.TABLE_NAME,STATTYPE_LOCKED FROM USER_TAB_STATISTICS D WHERE D.TABLE_NAME = 'BASE_ROLE';
TABLE_NAME STATTYPE_LOCKED
------------------------------ ---------------
SQL>
dbms_stats.unlock_table_stats存储的介绍
procedure unlock_table_stats(ownname varchar2,tabname varchar2,stattype varchar2 default 'ALL');
-- This procedure enables the user to lock the statistics of all
-- tables of a schema
-- Input arguments:
-- ownname - schema of tables to lock
-- stattype - type of statistics to be locked
-- 'CACHE' - lock only caching statistics
-- 'DATA' - lock only data statistics
-- 'ALL' - lock both data and caching statistics. This is the default
解锁用户:execute dbms_statS.unlock_schema_stats(ownname=>'U1');