LET 语句

以 LET 语句,您可以等号(=)和有效的表达式或函数名称来使用一个或多个变量名称。下图中的每一示例都是有效的 LET 语句。

图: 有效的 LET 语句。

LET a = 5;
            LET b = 6; LET c = 10;
            LET a,b = 10,c+d;
            LET a,b = (SELECT cola,colb 
            FROM tab1 WHERE cola=10);
            LET d = func1(x,y);

GBase 8s 允许您将值分配给 opaque 类型变量、row 类型变量,或 row 类型的字段。您还可将外部函数或另一 SPL 函数的值返回到 SPL 变量。

假设您定义命名的 row 类型 zip_taddress_t,如 图 1 所示。每当您定义 row 类型变量时,您必须在可使用它之前初始化该变量。下图展示您可能如何定义和初始化 row 类型变量。您可使用任何 row 类型值来初始化该变量。

图: 定义和初始化 row 类型变量。

DEFINE a address_t;
          LET a = ROW ('A Street', 'Nowhere', 'AA', 
          ROW(NULL, NULL))::address_t
在您定义并初始化 row 类型变量之后,您可编写下图所示的 LET 语句。

图: 编写 LET 语句。

LET a.zip.z_code = 32601;
            LET a.zip.z_suffix = 4555;
            -- Assign values to the fields of address_t
提示: 请以 variable.field or variable.field.field 的形式使用点符号表示法来访问 row 类型的字段,如 处理 row 类型数据 描述的那样。

假设您定义 opaque-type point,其包含定义二维点的两个值,且该值的文本表示为 '(x,y)'。您还可能有计算圆的周长的函数 circum(),给定的点 '(x,y)' 和半径 r

如果您定义以一点为圆心的 opaque 类型 center,以及计算圆的周长的函数 circum(),基于点和半径,您可为每一变量编写变量声明。在下图中,c 是一个 opaque 类型变量,d 保存外部函数 circum() 返回的值。

图: 编写变量声明。

DEFINE c point;
            DEFINE r REAL;
            DEFINE d REAL;
            
            LET c = '(29.9,1.0)' ;
            -- Assign a value to an opaque type variable
            
            LET d = circum( c, r );
            -- Assign a value returned from circum()

GBase 8s SQL 指南:语法 详细地描述 LET 语句的语法。