第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

侃侃無(wú)極 2019-12-04 13:17:55
我希望能夠在Oracle 9i中拆分csv字符串我已閱讀以下文章 http://www.oappssurd.com/2009/03/string-split-in-oracle.html但我不知道如何使這項(xiàng)工作。這是我有關(guān)的一些問(wèn)題如果沒(méi)有的話(huà),這在Oracle 9i中行得通嗎,為什么不呢?是否有比上面介紹的解決方案更好的拆分csv字符串的方法?我需要?jiǎng)?chuàng)建一個(gè)新類(lèi)型嗎?如果是這樣,我是否需要特定特權(quán)?我可以在函數(shù)中聲明w /類(lèi)型嗎?
查看完整描述

3 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是Oracle的字符串令牌生成器,它比該頁(yè)面要簡(jiǎn)單一些,但不知道它是否這么快:


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)


查看完整回答
反對(duì) 回復(fù) 2019-12-04
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

我最后用這個(gè)


create or replace function split

(

   p_list varchar2


) return sys.dbms_debug_vc2coll pipelined

is

   l_idx    pls_integer;

   l_list    varchar2(32767) := p_list;

   l_value    varchar2(32767);

begin

   loop

       l_idx := instr(l_list,',');

       if l_idx > 0 then

           pipe row(substr(l_list,1,l_idx-1));

           l_list := substr(l_list,l_idx+length(','));


       else

           pipe row(l_list);

           exit;

       end if;

   end loop;

   return;

end split;

declare

CURSOR c IS  select occurrence_num, graphics from supp where graphics is not null and graphics not like ' %';

begin

  FOR r IN c LOOP   

      insert into image (photo_id,report_id, filename) 

      select image_key_seq.nextval   photo_id, r.occurrence_num report_id, 

      t.column_value  filename from table(split(cast(r.graphics as varchar2(1000)))) t where t.column_value is not null;

   END LOOP;  

end ;


查看完整回答
反對(duì) 回復(fù) 2019-12-04
  • 3 回答
  • 0 關(guān)注
  • 1029 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)