写点什么

YashanDB STRING_TO_ARRAY 函数

作者:YashanDB
  • 2025-08-01
    广东
  • 本文字数:798 字

    阅读完需:约 3 分钟

STRING_TO_ARRAY 函数将字符串 src_string 以 split_string 作为分隔符进行切分生成一个数组,当被切分的成员与 replace_string 相同时,则将被切分成员替换为 NULL 后再生成数组(数组变量数组对象数组类型)并返回。

本函数遵循如下规则:

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

  • 最终返回的数组为隐式定义的数组变量,其成员数量上限最大为 INT 类型上限(2147483647),其成员数据类型为 VARCHAR(n),n 的值为生成数组中的最长成员的长度。

  • 本函数可以在 PL 中作为数组的初始化函数进行使用,但存在赋值对象限制,被赋值对象需要能承载本函数生成的数组,即其成员上限需大于等于本函数返回数组的成员上限,成员长度需大于等于本函数返回数组的长度。

src_string

通用表达式,须为字符型,或可隐式转换为字符型的其他类型(LOB 类型支持隐式转换)。当 src_string 为 NULL 时,函数返回 NULL。

split_string

通用表达式,须为字符型,或可隐式转换为字符型的其他类型(LOB 类型支持隐式转换)。当 split_string 为 NULL 时,函数将 src_string 按每个单字符逐一切分。

replace_string

通用表达式,须为字符型,或可隐式转换为字符型的其他类型(LOB 类型支持隐式转换)。

示例

SET serveroutput ON
DECLARE TYPE arr_type IS VARRAY(10) OF CHAR(10); a arr_type;BEGIN a := STRING_TO_ARRAY('a,b,c,d,e', ','); FOR i IN 1 .. a.COUNT LOOP DBMS_OUTPUT.PUT_LINE(i||' is: '||a(i)); END LOOP;END;/1 is: a2 is: b3 is: c4 is: d5 is: e
DECLARE TYPE arr_type IS VARRAY(10) OF CHAR(5); --使用STRING_TO_ARRAY函数对数组初始化 a arr_type := STRING_TO_ARRAY(',a,b,c,', ',','b');BEGIN FOR i IN 1 .. a.COUNT LOOP IF a(i) IS NULL THEN DBMS_OUTPUT.PUT_LINE(i||' is NULL'); ELSE DBMS_OUTPUT.PUT_LINE(i||' is: '||a(i)); END IF; END LOOP;END;/1 is NULL2 is: a3 is NULL4 is: c5 is NULL
复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB STRING_TO_ARRAY函数_数据库_YashanDB_InfoQ写作社区