当前位置: 首页 > news >正文

GBASE南大通用分享如何更新嵌套的集合

如果您想要更新集合的集合,则必须声明游标来访问外层的集合,然后声明嵌套的游标来 访问内层的集合。 

例如,假设 manager 表有一附加的列 scores,它包含一其元素类型为整数的 MULTISET 的 LIST,如下图所示。

更新集合的集合。 

  scores LIST(MULTISET(INT NOT NULL) NOT NULL); 

  要更新 MULTISET 中的值,请声明在 LIST 中每一值间移动的游标,以及在 MULTISET 中 每一值间移动的嵌套的游标,如下图所示。

更新 MULTISET 中的值。

  CREATE FUNCTION check_scores ( mgr VARCHAR(30) ) 

 SPECIFIC NAME nested; 

RETURNING INT; 

 DEFINE l LIST( MULTISET( INT NOT NULL ) NOT NULL );

 DEFINE m MULTISET( INT NOT NULL ); 

 DEFINE n INT;

 DEFINE c INT; 

 SELECT scores INTO l FROM manager

 WHERE mgr_name = mgr;  

FOREACH list_cursor FOR

 SELECT * FROM TABLE(l) INTO m; 

 FOREACH set_cursor FOR 

 SELECT * FROM TABLE(m) INTO n; 

 IF (n == 0) THEN

 DELETE FROM TABLE(m) 

 WHERE CURRENT OF set_cursor;

 ENDIF;

 END FOREACH; 

 LET c = CARDINALITY(m); 

 RETURN c WITH RESUME; 

 END FOREACH 

 END FUNCTION

 WITH LISTING IN '/tmp/nested.out'; 

该 SPL 函数将 scores 列中的每一 MULTISET 选择至 l 内,然后将 MULTISET 中的每一 值选择至 m 内。如果 m 中的值为 0,则函数从 MULTISET 删除它。在删除 0 的值之后, 该函数统计每一 MULTISET 中剩余的元素数,并返回一整数。 

  提示: 由于此函数为 LIST 中每一 MULTISET 返回一值,因此,当您执行该函数时,您 必须使用游标来括起 EXECUTE FUNCTION 语句。

http://www.lryc.cn/news/287769.html

相关文章:

  • Maya------插入循环边
  • Nginx_入门
  • 坚持刷题 | 平衡二叉树
  • 江大白 | 万字长文图解Numpy教程,看这一篇就够了!
  • 数据结构——静态链表
  • C++ 知识列表【图】
  • 系统登录的时候的密码如何做到以加密的形式进行登录【java.security包下的api】工具类。
  • java基础学习: 什么是泛型的类型擦除
  • Vue+OpenLayers7入门到实战:在地图上添加缩放控件、比例尺控件和鼠标经纬度位置显示控件
  • 极简生活|可以慢慢变富的8个习惯
  • MySQL基础(一)
  • 【Linux编译器-gcc/g++使用】
  • SQL提示与索引终章
  • 基于OpenSSL的SSL/TLS加密套件全解析
  • 01-echarts如何绘制三维折线图
  • Linux-共享内存
  • 深入分析 Linux 网络丢包问题
  • web安全学习笔记【08】——算法1
  • 2024最新版Python 3.12.1安装使用指南
  • Oracle 经典练习题 50 题
  • PyTorch的衍生资源
  • 开源项目Git Commit规范与ChangeLog
  • 【原理图PCB专题】OrCAD Capture CIS关闭开始界面
  • 【Linux】Ubuntu的gnome切换KDE Plasma
  • Docker(九)Docker Buildx
  • Flink问题解决及性能调优-【Flink不同并行度引起sink2es报错问题】
  • 瑞_数据结构与算法_二叉搜索树
  • Linux 命令行访问名字中包含空格的文件或文件夹
  • Dart/Flutter工具模块:the_utils
  • 矩阵号:日入100+,八大提示词(Prompt)使用技巧