Oracle 内存表(数组,函数返回值类型)

1.用途

返回字符数组。

2.效果


图1-遍历字符数组


图2-效果

3.代码展示

CREATE OR REPLACE TYPE role_name_tb_type is table of varchar2(128)

/*============================================*

  * Author  : SANFU

  * Created  : 2020-08-25 17:34:59

  * ALERTER  :

  * ALERTER_TIME  :

  * Purpose  :  获取字符数组

  * Obj_Name    : GET_STRARRAY

  * Arg_Number  : 2

  * AV_STR : 要分割的字符串

  * AV_SPLIT : 分隔符号

  *============================================*/

  FUNCTION get_strarray(av_str  VARCHAR2, --要分割的字符串

                        av_split VARCHAR2 --分隔符号

                        ) RETURN role_name_tb_type IS


    v_av_str  VARCHAR2(100) := av_str; --要切割的字符串

    v_av_split VARCHAR2(100) := av_split; --分割符

    v_length  NUMBER;

    --TYPE role_name_tb_type is table of varchar2(128);

    role_name_tb role_name_tb_type := role_name_tb_type();

  BEGIN

    v_length := scmdata.sf_import_company_users_pkg.get_strarraylength(v_av_str,

                                                                      v_av_split);


    FOR i IN 0 .. (v_length - 1) LOOP

      --扩展数组

      role_name_tb.extend;

      SELECT scmdata.sf_import_company_users_pkg.get_strarraystrofindex(v_av_str,

                                                                        v_av_split,

                                                                        i)

        INTO role_name_tb(role_name_tb.count)

        FROM dual;


    END LOOP;

    /*    for i in 0 .. (v_length - 1) loop

      dbms_output.put_line(role_name_tb(i));


    end loop;*/

    RETURN role_name_tb;

  END get_strarray;

你可能感兴趣的:(Oracle 内存表(数组,函数返回值类型))