У меня есть Oracle (Oracle Database 11g - 11.2.0.3.0), который использует материализованное представление для подключения к другим базам данных Oracle. Материализованное представление, похоже, сопоставило поле типа NUMBER с байтом (3). Теперь, когда в связанной базе данных есть большие значения (x, 000 с) по сравнению с (x 100 с), обновление не выполняется, поскольку оно слишком велико для размещения. Я попытался перекомпилировать и изменить размер столбца, но он жалуется с ошибками. В исходном SQL не указываются размеры столбцов - простое поле выбирается в mview.
Issue: ORA-12899: value too large for column "XXXXX"."YYYY_MV"."ZZZZZ" (actual: 4, maximum: 3)
A. Перекомпиляция
ALTER MATERIALIZED VIEW XXXXX.YYYY_MV COMPILE
VIEW CUSTOMERS.CHAMP_DSS_CUSTOMERS_MV altered.
(но по-прежнему не удается запустить обновление).
B. Изменение
ALTER:
[sqltask] alter materialized view XXXXX.YYYY_MV
[sqltask] modify (ZZZZZ CHAR(30 BYTE))
[sqltask] Exception executing sql java.sql.SQLSyntaxErrorException: ORA-01732: data manipulation operation not legal on this view
Кто-нибудь сталкивался с таким поведением, какова ваша предлагаемая стратегия исправления / выхода?