CREATE OR REPLACE TYPE语句中FORCE关键字的含义是什么?

时间:2015-06-07 16:45:44

标签: sql oracle user-defined-types

关键字FORCE在此声明中的含义是什么:

 CREATE OR REPLACE TYPE object_name FORCE IS TABLE OF NUMBER;

1 个答案:

答案 0 :(得分:9)

这意味着强制(重新)创建类型,即使它具有其他类型依赖性。例如,如果您有以下类型:

type O_Object is (
  Prop1 INT,
  Prop2 INT
);
type T_ObjectTable is table of O_Object;

如果要修改O_Object,则会出现错误,因为T_ObjectTable依赖于它。使用FORCE,您可以重新创建对象(尽管T_ObjectTable之后需要重新编译)。

如果存在表依赖项(实际表,而不是table-of-object types ),这将无效。在这种情况下,无论是否有FORCE,create语句都将失败。

It's in the docs too:)