ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

GBASE南大通用分享如何将值插入至内层的集合

2026/9/20 23:53:49 拓冰建站 浏览量
GBASE南大通用分享如何将值插入至内层的集合

在 SPL 例程中,您还可将值插入至嵌套的集合的内层集合。通常,要访问嵌套的集合的内 层集合并将值插入到它,请执行下列步骤:

1. 声明集合变量来在表的一行中保存整个集合。

2. 声明元素变量来保存该外层的集合的一个元素。元素变量本身是集合变量。

3. 将整个集合从表的一行选择至集合变量。

4. 声明游标,以便您可在外层的集合的元素间移动。

5. 一次将一个元素选择至元素变量内。

6. 请使用分支或循环来定位您想要更新的内层集合。 

7. 将新值插入至内层的集合内。

8. 关闭游标。

9. 以新的集合更新数据库表。

作为示例,您可在 numbers 的 twin_primes 列上使用此过程。 例如,假设 twin_primes 包含 下图所示的值,且您想要将值 18 插入至 LIST 的最后的 SET 中。

图: twin_primes 列表。

  LIST( SET( {3,5}, {5,7}, {11,13}, {17,19} ) ) 

  下图展示插入该值的过程的开始。

图: 插入值的过程。

  CREATE PROCEDURE add_int() 

 DEFINE list_var LIST( SET( INTEGER NOT NULL ) NOT NULL ); 

 DEFINE set_var SET( INTEGER NOT NULL );

 SELECT twin_primes INTO list_var FROM numbers

 WHERE id = 100;  

至此,attaint 过程已执行了步骤 1、2 和 3。第一个 DEFINE 语句声明保存在一个数值行中 的整个集合的集合变量。 

第二个 DEFINE 语句声明保存该集合的元素的元素变量。在此情况下,元素变量本身是集 合变量,因为它保存 SET。SELECT 语句将整个集合从一行选择至集合变量 list_var 内。 

下图展示如何声明游标,以便于您可在外层的集合的元素间移动。

图: 声明游标来在外层的集合的元素间移动。 

 FOREACH list_cursor FOR 

 SELECT * INTO set_var FROM TABLE( list_var);

 FOREACH element_cursor FOR