The LOCK_TABLE_STATS procedure is used to lock the statistics of a table.
Syntax
DBMS_STATS.LOCK_TABLE_STATS (
ownname VARCHAR2,
tabname VARCHAR2,
stattype VARCHAR2 DEFAULT 'ALL');
Parameters
| Parameter | Description |
|---|---|
| ownname | The username. If NULL is specified, the current login username is used by default. |
| tabname | The table name. |
| stattype | The type of lock. The following three lock types are generally supported:
|
Considerations
You must be the owner of the table to call this procedure. For objects owned by
SYS, you must be the owner or have theSYSDBAprivilege.When the statistics of a table are locked, the statistics of all dependent objects, including table-level, column-level, histogram, and index-related statistics, are also locked.
If the statistics of an object are locked, an error will be returned when you execute the
SET_*,DELETE_*,IMPORT_*, orGATHER_*procedure to modify the statistics of a single table, index, or column.When you call the
EXPORT_*_STATSprocedure, the lock or unlock status is not exported with the table-level statistics.The
UNLOCK_SCHEMA_STATSandUNLOCK_TABLE_STATSprocedures cannot unlock the statistics of a partition. When you call theLOCK_TABLE_STATSprocedure, it sets the lock at the table level. At this point, you cannot collect statistics for dependent objects such as partitions and indexes. Additionally, if the table-level statistics are locked, their dependent objects are also locked, so you do not need to explicitly call theLOCK_PARTITION_STATSprocedure to lock the partition statistics.
Examples
Lock the table-level statistics of the t1 table in the testUser01 user.
obclient> CALL DBMS_STATS.LOCK_TABLE_STATS ('testUser01', 't1');
Query OK, 0 rows affected
