可以通过以下3种方式创建记录类型变量。
(1)使用RECORD语句自定义记录类型,然后使用该记录类型声明记录类型变量。
在PL/SQL块中定义的RECORD类型是本地类型,仅在块中有效。
在包规范中定义的RECORD类型是公共项。可以通过包名限定的方式(package_name.type_name)在包外引用。它会一直存储在数据库中,直到通过DROP PACKAGE语句删除包。
不能在模式中创建RECORD类型,因此,RECORD类型不可以作为ADT属性数据类型。
为了定义记录类型,需要指定名称和定义字段,字段默认值为NULL。可以给字段加NOT NULL约束,这种情况下必须指定一个非NULL的初始值。如果没有NOT NULL约束,则这个非NULL初始值可选。
(2)通过%ROWTYPE声明一个记录类型,该变量可以表示数据库表或视图的完整行或部分行。
%ROWTYPE属性允许声明一个record变量,该变量表示数据库表或视图的完整行或部分行。要声明始终代表数据库表或视图的整行record变量,语法格式如下。
对于表或视图的每一列,record变量都有一个相同名称和数据类型的字段。
(3)通过%TYPE属性,可以声明与之前声明的变量或列具有相同数据类型的数据项(而不需要知道该类型具体是什么)。