ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB STRING_TO_ARRAY函数

YashanDB STRING_TO_ARRAY函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-08-01 15:55:39 0 删除 编辑

STRING_TO_ARRAY

语法图

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 ONDECLARE
  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: eDECLARE
  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
代码
string_to_array::= STRING_TO_ARRAY "(" src_string "," split_string [ "," replace_string ] ")"

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 ONDECLARE
  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: eDECLARE
  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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3092603/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: YashanDB STRPOS函数
请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639734