08.10.2006 12:47
OlegON
 
При апгрейде можете столкнуться с такой неприятностью.. Имейте ввиду.

fact: Oracle Server - Enterprise Edition 9.2.0.1.0
fact: MS Windows 2000
symptom: ALTER TABLE ADD COLUMN command fails
symptom: ORA-22856: cannot add columns to object tables
cause: ALTER TABLE COMPRESS
cause: Scenario
~~~~~~~~
SQL> create table TAB1 (col1 number);
SQL> alter table TAB1 compress;
SQL> alter table TAB1 add (col2 number);
.
ORA-22856 cannot add columns to object tables
.





Problem Description
~~~~~~~~~~~~~~~~~~~
Various errors can occure in Oracle 9.2 on tables which use data segment
compression when using add/drop column operations.


Adding a column(s) to a compressed table
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When adding a column to a compressed table on Oracle 9.2 the following
error occures:

SQL> create table TAB1 (col1 number);
SQL> alter table TAB1 compress;
SQL> alter table TAB1 add (col2 number);
*
ERROR at line 1:
ORA-22856 cannot add columns to object tables


It is also not possible add any new columns after having disabled data segment
compression.

SQL> -- Removing data segment compresssion
SQL> alter table TAB1 NOCOMPRESS;
SQL> alter table TAB1 add (col2 number);
alter table TAB1 add (col2 number)
*
ERROR at line 1:
ORA-22856: cannot add columns to object tables


Dropping column(s) from a compressed table
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> create table TAB2 (col1 number);
SQL> alter table TAB2 add (col2 number);
SQL> alter table TAB2 compress;
SQL> alter table TAB2 drop column col2;
alter table TAB2 drop column col2
*
ERROR at line 1:
ORA-12996: cannot drop system-generated virtual column


Fix
~~~
This problem is described by bug 2421054 which is fixed in 10g.


Workaround
~~~~~~~~~~
- Use CREATE TABLE AS SELECT
- Export/import affected table
09.10.2006 06:09
reddevil
 
Oracle Server - Enterprise Edition 9.2.0.1.0 - предлагаешь на этом продакшн крутить? 9,2,0,4 - минимум, на всем что ниже то что ты описал - цветочки
09.10.2006 08:42
OlegON
 
Нет, тут речь о том, что это встречается на 9.2.0.7 и до 10 не поправлено. Супермаг до 9.2.0.7 вообще не встает. Генератор БД падает.
09.10.2006 09:59
reddevil
 
"до 10 не поправлено"- кстати да надо уже пробовать, времени б на это найти(((
09.10.2006 10:03
OlegON
 
Если ты про переход на 10, то для СМ2000 можешь время не тратить. Не работает.
20.10.2011 21:13
Stels
 
При обновлении генератором с 1.024.6sp2 до 1.025
нарвался вот на это
https://olegon.ru/showpost.php?p=52807&postcount=2
Код:
Вопрос:

При обновлении версии СМ2000 ( CM +) Генератор БД останавливается с ошибкой:

***** Documents.sql *****

Таблица изменена.

begin

*

ошибка в строке 1:

ORA-22856: невозможно добавлять столбцы к таблицам объектов

ORA-06512: на "SUPERMAG.SMINITNEWFIELD", line 11

ORA-06512: на line 2
один в один ...

Первый вариант из ФАКа не помогает.
А по второму не знаю как вытащить скрипт создания таблицы (шаг 4)

скриптом выдает, что сжаты 2 таблицы
одна из них SMDOCLOG

через Enterprise Manager стоя на таблице делаю 'Show Object DDL'

там вижу:
Код:
CREATE TABLE "SUPERMAG"."SMDOCLOG" ("RECID" NUMBER DEFAULT 0 NOT 
    NULL, "EVENTTIME" DATE DEFAULT SYSDATE NOT NULL, "DOCTYPE" 
    CHAR(2 byte) NOT NULL, "ID" VARCHAR2(50 byte) NOT NULL, 
    "ACTIONCODE" NUMBER(5) NOT NULL, "OLDSTATE" NUMBER(5) NOT 
    NULL, "NEWSTATE" NUMBER(5) NOT NULL, "DOCDATE" DATE NOT NULL,
    "EMPLOYEE" NUMBER(10) DEFAULT -2 NOT NULL, "WSNAME" 
    VARCHAR2(100 byte), "USERNAME" VARCHAR2(30 byte), "OSUSER" 
    VARCHAR2(30 byte), 
    CONSTRAINT "SMCDOCLOG_ACTION" CHECK(ActionCode between 0 
    and 15), 
    CONSTRAINT "SMCDOCLOG_NEWSTATE" CHECK(NewState between -1 
    and 3), 
    CONSTRAINT "SMCDOCLOG_OLDSTATE" CHECK(OldState between -1 
    and 3), 
    CONSTRAINT "SMCDOCLOG_PK" PRIMARY KEY("EVENTTIME", "RECID") 
    USING INDEX  
    TABLESPACE "INDX" 
    STORAGE ( INITIAL 11264K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
    2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)
     
    TABLESPACE "USERS" PCTFREE 0 PCTUSED 0 INITRANS 1 MAXTRANS 
    255 
    STORAGE ( INITIAL 25600K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
    2147483645 PCTINCREASE 0) 
    LOGGING 
    MONITORING
Это то? или что-то нужно ещё тут править?
21.10.2011 07:05
OlegON
 
Цитата:
Stels При обновлении генератором с 1.024.6sp2 до 1.025
нарвался вот на это
https://olegon.ru/showpost.php?p=52807&postcount=2
Какая-то ерунда там написана. Без пересоздания все нормально работает.
21.10.2011 16:52
Stels
 
это ищет сжатые таблицы:
Код:
SELECT table_name, tablespace_name, owner  FROM dba_tables WHERE compression = 'ENABLED' ORDER BY owner, table_name;
это убирает компрессию:
Код:
alter table xxx move nocompress;
alter table xxx nocompress;
Часовой пояс GMT +3, время: 20:46.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.