YashanDB ARRAY_LENGTH函数

ARRAY_LENGTH函数对数组(数组变量数组对象数组类型)array_var计算按dimension指定维度的数组长度(即成员数量),返回一个INT类型的数值。

本函数不支持向量化计算。

array_var

一个已初始化的数组变量,不可为NULL。

dimension

数组维度,即数组嵌套深度,为一个通用表达式,其值类型必须为INT(超过INT值域范围时报错)。

  • 当dimension为NULL时,函数返回NULL。
  • 数组嵌套深度从1开始,当dimension小于1或者大于最大深度时,函数返回NULL。
  • 当在同一dimension存在多个数组时,函数返回最长的数组长度。

示例(HEAP表)

--单层数组
SELECT ARRAY_LENGTH(STRING_TO_ARRAY('a,b,c,d,e', ','), 1) len FROM DUAL;
         LEN 
------------ 
           5

SELECT ARRAY_LENGTH(STRING_TO_ARRAY('a,b,c,d,e', ','), NULL) len FROM DUAL;
         LEN 
------------ 
            

SELECT ARRAY_LENGTH(STRING_TO_ARRAY('a,b,c,d,e', ','), -1) len FROM DUAL;
         LEN 
------------ 
            
            
--多层数组
SET serveroutput ON
DECLARE
  TYPE arr_type_2 IS VARRAY(10) OF CHAR(5);
  TYPE arr_type_1 IS VARRAY(10) OF arr_type_2;
  b arr_type_1;
BEGIN
    b := arr_type_1(STRING_TO_ARRAY('a1,b1,c1', ',')
                    ,STRING_TO_ARRAY('a2,b2', ',')
                    ,STRING_TO_ARRAY('a3,b3,c3,d3', ','));
    DBMS_OUTPUT.PUT_LINE('Dimension 1 has:'||ARRAY_LENGTH(b,1));
    DBMS_OUTPUT.PUT_LINE('Dimension 2 has:'||ARRAY_LENGTH(b,2));
END;
/
Dimension 1 has:3
Dimension 2 has:4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值