如何在PL / SQL中使用数组?

时间:2014-12-05 10:42:59

标签: plsql

如何在PL / SQL中创建数组?

我有一个字符串,我想在空格上分割,然后循环遍历它们。

2 个答案:

答案 0 :(得分:2)

声明你的数组:

 "your array" apex_application_global.vc_arr2;

  "your array" :=  APEX_UTIL.STRING_TO_TABLE("your string",' ');

  FOR i IN 1.. "your array".COUNT   LOOP

  "Your string" := "Your string"|| "your array"(i);

    END LOOP;   

并且你有它

答案 1 :(得分:0)

这是最终的通用解决方案,不使用任何软件包,只需要oracle SQL。在此处查看功能齐全的解决方案(包括流水线功能):http://www.armbruster-it.org/index.php/12-it/pl-sql/20-string-tokenizer-with-oracle-pl-sql

declare
  cursor c_tokenizer(ci_string in varchar2, ci_delimiter in varchar2) is
    SELECT regexp_substr(str, '[^' || ci_delimiter || ']+', 1, LEVEL) AS splitted_element,
           LEVEL AS element_no
      FROM (SELECT rownum AS id, ci_string str FROM dual)
    CONNECT BY instr(str, ci_delimiter, 1, LEVEL - 1) > 0
           AND id = PRIOR id
           AND PRIOR dbms_random.value IS NOT null;

  l_string    varchar2(100) := 'Hello World, I like PL/SQL';
  l_delimiter varchar2(1) := ' ';
begin
  -- extract each word of the string above (delimited by blank)
  for c1 in c_tokenizer(l_string, l_delimiter) loop
    dbms_output.put_line(c1.splitted_element);
  end loop;
end;

结果是:

Hello
World,
I
like
PL/SQL