请教一个数据切分的问题
表TEMP中数据结构
ID TEMP
1 1,2,3
2 4,5,6
想写出语句检索结果为
1 1
1 2
1 3
2 4
2 5
2 6
在网上找一个切分的函数
create or replace type strsplit_type is table of varchar2(100)
create or replace function strsplit(p_value varchar2, p_split varchar2)
return strsplit_type
pipelined is
v_idx integer;
v_str varchar2(500);
v_strs_last varchar2(4000) := p_value;
begin
loop
v_idx := instr(v_strs_last, p_split);
exit when v_idx = 0;
v_str := substr(v_strs_last, 1, v_idx - 1);
v_strs_last := substr(v_strs_last, v_idx + 1);
pipe row(v_str);
end loop;
pipe row(v_strs_last);
return;
end strsplit;
但是这个只能单列切分
SELECT * FORM TABLE(SELECT strsplit(TEMP,',') FROM TEMP WHERE ID = 1);这个可以
下面这个语句就会报ORA-00600错误
SELECT (SELECT * FROM A.TEMP),ID FROM
(SELECT strsplit(TEMP,',') AS TEMP,ID FROM TEMP)A
请高手帮忙