将一列拆分或替换为多列

Splitting or Substr one column into multiple columns

我有一个 table poll,我在 poll 中有 600 行。类型是 CLOB。某些行在 data 列中包含 12000 或 15000 个字符。当它包含 12200 个字符时,我需要像这样制作多列:

data1        data2        data3        data4
-----------  -----------  -----------  -----------
first 4000   second 4000  third 4000   last 200

我该怎么做?

您可以使用 dmbs_lob.substr():

select
    dbms_lob.substr(data, 4000,     1) data1,
    dbms_lob.substr(data, 4000,  4001) data2,
    dbms_lob.substr(data, 4000,  8001) data3,
    dbms_lob.substr(data, 4000, 12001) data4
from mytable