I have run into an interesting problem while working on partitioned table in Oracle database.
Observation:
when I execute the query
select partition_name, high_value
from all_tab_partitions
where table_name = 'TABLE_NAME_P';
I get an ora error
ORA-01653: unable to extend table SYS.SQLOBJ$PLAN by 128 in tablespace SYSAUX
However, the query successfully runs without the high_value. For example: the queries
select partition_name from all_tab_partitions where table_name = 'TABLE_NAME_P';
select partition_position from all_tab_partitions where table_name = 'TABLE_NAME_P';
are throwing no errors.
Moreover, when I replace table_name with tablespace_name column like:
select partition_name, high_value from all_tab_partitions where tablespace_name = 'TABLESPACE_D1'
then also the query runs successfully without any errors. However, I need to use the table_name for finding the partitions and their corresponding high_value for a specific table in my user tablespace.
- user Tablespace size = 4GB
- SYSAUX free space = 147MB
- Oracle 19c version 19.3.
Help me understand:
- Why does this error occur with high_value and not with other columns in all_tab_partitions?
- How can I make space in SYSAUX for the table SYS.SQLOBJ$PLAN without creating additional datafile?
- Is it safe to purge or delete some entries in SYS.SQLOBJ$PLAN to create space and what can be its impacts? I cannot find any documentation for SYS.SQLOBJ$PLAN and information about its columns.