赋值语句

语法

给变量赋值的语法请参见图1

图 1 assignment_value::=
赋值语句 - 图1

对以上语法格式的解释如下:

  • variable_name:变量名。
  • value:可以是值或表达式。值value的类型需要和变量variable_name的类型兼容才能正确赋值。

示例

  1. openGauss=# DECLARE
  2. emp_id INTEGER := 7788;--赋值
  3. BEGIN
  4. emp_id := 5;--赋值
  5. emp_id := 5*7784;
  6. END;
  7. /

嵌套赋值

给变量嵌套赋值的语法请参见图2

图 2 nested_assignment_value::=
赋值语句 - 图2

对以上语法格式的解释如下:图2

  • variable_name:变量名。
  • col_name:列名。
  • subscript:下标,针对数组变量使用,可以是值或表达式,类型必须为int。
  • value:可以是值或表达式。值value的类型需要和变量variable_name的类型兼容才能正确赋值。

示例

  1. openGauss=#CREATE TYPE o1 as (a int, b int);
  2. openGauss=# DECLARE
  3. TYPE r1 is VARRAY(10) of o1;
  4. emp_id r1;
  5. BEGIN
  6. emp_id(1).a := 5;--赋值
  7. emp_id(1).b := 5*7784;
  8. END;
  9. /

赋值语句 - 图3 须知:

  • INTO 方式赋值仅支持对第一层列赋值,且不支持二维及以上数组;
  • 引用嵌套的列值时,若存在数组下标,目前仅支持在前三层列中只存在一个小括号情况,建议使用方括号[ ]引用下标;