Oracle迁移到MogDB之MEMBER OF

本文描述了在进行POC项目时,如何在MogDB中模拟Oracle的memberof语法,通过使用any操作符实现数组成员存在检查。作者展示了从OraclePL/SQL代码到MogDB的迁移示例和执行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写自定义目录标题

背景

在做POC项目时,遇到客户的代码中有member of的判断,而MogDB暂不支持该语法,不过MogDB中可以采用其它方式来实现该功能。

Oracle端源码模拟

DECLARE
  TYPE typ_no IS TABLE OF NUMBER;
  v_no_list typ_no := typ_no(7788,7369,7654);
BEGIN
  IF (7654 MEMBER OF v_no_list) THEN
    dbms_output.put_line('IS MEMBER OF');
  END IF;
END;

执行结果如下:

IS MEMBER OF

PL/SQL procedure successfully completed.

SQL> 

该功能是判断 7654是否包含在数组 v_no_list 里面。

MogDB

MogDB中不支持Member of ,但可以用 any 操作符来进行比较,见:
https://docs.mogdb.io/zh/mogdb/v5.0/array-expressions#anysome-array

因此,迁移后可改为

DECLARE
  TYPE typ_no IS TABLE OF NUMBER;
  v_no_list typ_no := typ_no(7788,7369,7654);
BEGIN
  /*IF (7654 MEMBER OF v_no_list) THEN*/
  IF (7654 = any(v_no_list)) THEN
    dbms_output.put_line('IS MEM
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值