1

I have my plsql block as below:

DECLARE
CURSOR cdrimei IS select distinct(table_name) as tname from user_tab_columns 
where column_name = 'CALLED_NUMBER_TIPO_ABONADO' and table_name not like '%_V' order by table_name;
BEGIN
FOR i in cdrimei
LOOP

execute immediate 'ALTER TABLE '||i.tname||' DROP (IMEI_CHAIN ,IMEI_STOLEN)';
execute immediate 'ALTER TABLE '||i.tname||' ADD (IMEI_CHAIN varchar2(255),IMEI_STOLEN varchar2(255))';

END LOOP;
END;
/

After executing this I am facing the below error:

ORA-39726: unsupported add/drop column operation on compressed tables

I don't understand the meaning of compressed tables.

4

1 回答 1

2

压缩表在管理员指南中有一些限制:

将列添加到压缩表时适用以下限制:

  • 基本压缩 - 您不能为添加的列指定默认值。

  • OLTP 压缩 - 如果为添加的列指定了默认值,则该列必须为 NOT NULL。不支持添加具有默认值的可为空列。

删除压缩表中的列时适用以下限制:

  • 基本压缩 - 不支持删除列。

  • OLTP 压缩 - 支持 DROP COLUMN,但在内部数据库设置列 UNUSED 以避免长时间运行的解压缩和重新压缩操作。

于 2013-07-10T07:22:58.220 回答