声明 ROW 变量

ROW 变量保留从命名的或未命名的 ROW 类型的数据。您可以定义类属 ROW 变量,已命名的 ROW 变量或未命名的 ROW 变量。

使用 ROW 关键字定义的类属 ROW 变量可以保留来自任何 ROW 类型的数据。已命名的 ROW 变量保留来自变量声明中指定的已命名的 ROW 类型的数据。

以下语句显示了类属 ROW 变量和已命名的 ROW 变量的示例:
DEFINE d ROW;               -- generic ROW variable
        
        DEFINE rectv rectangle_t;   -- named ROW variable

已命名的 ROW 变量保留在变量声明中相同类型的已命名的 ROW 类型。

要定义一个变量(该变量将保留存储在未命名的 ROW 类型中的数据),请使用后面跟有 ROW 类型的字段的 ROW 关键字,如:
DEFINE area ROW ( x int, y char(10) );
未命名的 ROW 类型是仅由等同结构检查的类型。如果两个未命名的 ROW 类型具有相同的字段数量,并且具有相同的类型定义,那么这两个 ROW 类型被认为是等同的。因此,您可以将以下 ROW 类型中任意一个访存到上面定义的变量 area 中:
ROW ( a int, b char(10) )
        ROW ( area int, name char(10) )
就像 ROW 类型可以有字段一样,ROW 变量也可以有字段。要给 ROW 变量的字段指定值,请使用限定符表示法 variableName.fieldName ,其后跟随表达式,如以下示例中所示:
CREATE ROW TYPE rectangle_t (start point_t, length real, width real);
        
        DEFINE r rectangle_t;
        -- Define a variable of a named ROW type
        LET r.length = 45.5;
        -- Assign a value to a field of the variable

当您给 ROW 变量指定值时,可以使用任何有效的表达式。