| 创建和使用 SPL 例程 / 处理集合 | |
您可通过访问游标内的集合来更新集合元素,就如同您选择或删除个别的元素一样。
图: 更新集合元素。
DEFINE s SET(INTEGER NOT NULL);
          DEFINE n INTEGER;
          
          SELECT numbers INTO s FROM orders
          WHERE order_num = 10;
          
          FOREACH cursor1 FOR
          SELECT * INTO n FROM TABLE(s)
          IF ( n == 500 ) THEN
          UPDATE TABLE(s)(x)
          SET x = 400 WHERE CURRENT OF cursor1;
          EXIT FOREACH;
          ELSE
          CONTINUE FOREACH;
          END IF;
          END FOREACH
UPDATE 语句使用集合变量 s 作为集合派生的表。要指定集合派生的表,请使用 TABLE 关键字。在 UPDATE 语句中跟在 (s) 之后的值 (x) 是您提供的列名称 derived column,因为 SET 子句需要它,即使集合派生的表没有列也需要。
100 200 300 500
在此示例中,x 是包含值 500 的“列”的虚构的列名称。如果您正在更新内建的、opaque、distinct 或集合类型元素的集合,则仅指定派生的列。如果您正在更新 row 类型的集合,请使用字段名,而不是派生的列,如 更新 row 类型的集合 描述的那样。