如何从一列插入多行?

Pep*_*Lew 5 sql database oracle insert

我想通过拆分列值从一列插入多行.但是由于性能问题,我必须在没有游标的情况下这样做.

每个都value被分成6个字符长度值.然后这些值也分成3个,1个和2个字符长度值,以在表B中插入不同的列.

我想提供一个样本将澄清我的问题:

表A.

ID      Value
1       ABCDEFGHJKLM
2       NOPRST
3       NULL VALUE
Run Code Online (Sandbox Code Playgroud)

我想像这种格式将这些值插入表B中

表B.

ID     Value1       Value2       Value3
1       ABC          D            EF
1       GHJ          K            LM
2       NOP          R            ST
Run Code Online (Sandbox Code Playgroud)

Flo*_*ita 6

假设600(100行)作为最大值的长度:

insert into tableB
select id, substr(value,n*6+1,3), substr(value,n*6+4,1), substr(value,n*6+5,2)
from tableA 
     join (select level-1 as n from dual connect by level <= 100)
       on length(value) > n*6;
Run Code Online (Sandbox Code Playgroud)

Sqlfiddle.