У нас есть два типа, один объектный, другой - таблица значений первого типа.
Первый тип:
create or replace type t_test1 as object
(
ROW_ID NUMBER,
G_ID NUMBER,
QTY NUMBER,
PRICE NUMBER
)
Второй тип:
create or replace type tb_test1 as table of t_test1
Если мы захотим добавить/убрать поле в первом типе, то при компиле мы получим ошибку:
ORA-02303: cannot drop or replace a type with type or table dependents
Что бы не делать подобных манипуляций:
- удалять второй тип, который ссылается на первый;
- редактировать первый;
- повторно создавать второй;
можно добавить в описание первого типа ключевое слово FORCE:
create or replace type t_test1 FORCE as object
(
ROW_ID NUMBER,
G_ID NUMBER,
QTY NUMBER
)
При перекомпиле второй тип станет инвалидным, поэтому его тоже надо перекомпилить.
FORCE действует только для типов данных, если на тип ссылается таблица, то FORCE не поможет.