有一个csv字符串,其值为“A1; B2; C3”,需要获取单独的值,然后将值插入表中 怎么分开这个字符串? 编辑: 我用这个
SELECT TRIM(SUBSTR(txt , INSTR (txt, ';', 1, level ) + 1,
INSTR (txt, ';', 1, level+1) - INSTR (txt, ';', 1, level) -1
)
)
AS TOKEN
FROM ( SELECT ';'||'8;9;7;6'||';' AS txt FROM dual )
CONNECT BY level <= LENGTH(txt)-LENGTH(REPLACE(txt,';',''))-1
并获取单独的值,但需要将这些值设置为变量
答案 0 :(得分:0)
目前尚不清楚是否要将它们插入1条记录或创建一套。
如果要插入单个字段,可以使用SUBSTR和INSTR函数,如下所示:
with s as (select ';' || 'aa;bb;cc' || ';' str from dual)
select
substr(s.str,instr(s.str, ';',1,1)+1, instr(s.str, ';',1,2)-instr(s.str, ';',1,1)-1),
substr(s.str,instr(s.str, ';',1,2)+1, instr(s.str, ';',1,3)-instr(s.str, ';',1,2)-1),
substr(s.str,instr(s.str, ';',1,3)+1, instr(s.str, ';',1,4)-instr(s.str, ';',1,3)-1)
from s