1、对象类型规范
创建对象类型规范的语法如下
其中AUTHID指示将来执行该方法时,必须使用在创建时定义的CURRENT_USER或DEFINER的权限集合。CURRENT_USER是调用该方法的用户,DEFINER是该对象类型的所有者。
1)属性
属性的声明有一些限制,包括:
-
属性的声明必须出现在方法的声明以前。
-
数据类型可以是任何数据库数据类型,但是不能包括ROWID,UROWID,LONG,LONG RAW,NCHAR,NCLOB,NVARCHAR2类型,以及PL/SQL的专用类型或在PL/SQL包中定义的类型。
-
不能使用那些只能在PL/SQL中使用而不能在数据库中使用的数据类型。这些类型包括BINARY_INTEGER,BOOLEAN,PLS_INTEGER,RECORD和REF CURSOR。
-
不能使用NOT NULL约束,但是可以通过在对象实例上定义一个数据库触发器来达到相同效果。
-
属性列表中至少必须有一个属性。
-
不能使用默认值。
注意:不能直接在属性或对象类型上使用%TYPE和%ROWTYPE。但是可以在对象实例的属性上使用它们。
复合对象类型
复合对象类型可以以某个属性的数据类型的形式,包含另一个对象类型。