我的表包含以下格式的数据,不包含任何自动主键

时间:2015-12-02 13:10:00

标签: sql oracle plsql split

我的名为color_code的表格如下:

color_id      color_name
---------     ----------
101           (red,blue,green)
102           (cyan,magenta)
103           (white,deep,light,yellow)
104           (null)

但我的数据应采用以下格式,并且此结果数据应插入color_insert

这应该是我的输出:

color_id        color_name
---------       ------------
101              red
101              blue
101              green
102              cyan
102              magenta
103              white
103              deep
103              light
103              yellow
104              

我试过这个,但对我的逻辑不满意。能帮到我吗

DECLARE
BEGIN
  FOR i IN 1..4
  LOOP
    INSERT INTO color_insert
      SELECT color_id,
             TRIM(REGEXP_SUBSTR(color_name, '[^,]+', 1, i)) color_name
        FROM color_test 
        CONNECT BY REGEXP_SUBSTR(color_id, '[^,]+', 1, level) IS NOT NULL
       ORDER BY color_id;
  END LOOP;
END;

0 个答案:

没有答案