gpt4 book ai didi

oracle - 如何在oracle 9i中最佳拆分csv字符串

转载 作者:行者123 更新时间:2023-12-04 04:48:09 25 4
gpt4 key购买 nike

我希望能够在Oracle 9i中拆分csv字符串

我已阅读以下文章
http://www.oappssurd.com/2009/03/string-split-in-oracle.html

但我不知道如何使这项工作。
这是我有关的一些问题

  • 这在Oracle 9i中是否可以工作,如果不能,为什么不呢?
  • 是否有比上述解决方案更好的拆分csv字符串的方法?
  • 我需要创建一个新类型吗?如果是这样,我是否需要特定特权?
  • 我可以在函数中声明w/类型吗?
  • 最佳答案

    这是一个用于Oracle的字符串 token 生成器,它比该页面要简单一些,但是不知道它是否那么快:

    create or replace function splitter_count(str in varchar2, delim in char) return int as
    val int;
    begin
    val := length(replace(str, delim, delim || ' '));
    return val - length(str);
    end;

    create type token_list is varray(100) of varchar2(200);

    CREATE or replace function tokenize (str varchar2, delim char) return token_list as
    ret token_list;
    target int;
    i int;
    this_delim int;
    last_delim int;
    BEGIN
    ret := token_list();
    i := 1;
    last_delim := 0;
    target := splitter_count(str, delim);
    while i <= target
    loop
    ret.extend();
    this_delim := instr(str, delim, 1, i);
    ret(i):= substr(str, last_delim + 1, this_delim - last_delim -1);
    i := i + 1;
    last_delim := this_delim;
    end loop;
    ret.extend();
    ret(i):= substr(str, last_delim + 1);
    return ret;
    end;

    您可以像这样使用它:
    select tokenize('hi you person', ' ') from dual;
    VARCHAR(hi,you,person)

    关于oracle - 如何在oracle 9i中最佳拆分csv字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1089508/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com