拆分CLOB数据时的性能问题

时间:2017-12-21 05:00:28

标签: oracle clob

在我们的项目中,我们有一个表table1,它由数据类型为CLOB的列Col6组成。

Col6列具有以分号分隔的值(例如:A; B; C; D)

我们需要将基于分号的此列的值拆分为分隔符。我们的表有大量的数据,在分割值后,我们预计大约有10万行。我们尝试了以下查询,但执行时间超过一小时。

如何解决性能问题?

我们尝试了以下两个查询。

select
col1, col2, col3, col4,col5,
trim(regexp_substr(col6, '[^;]+', 1, level)) as dummy_col
from table1
CONNECT BY instr(col6, ',', 1, LEVEL - 1) > 0
and col6 is not null;


select
col1, col2, col3, col4,col5,,cast(trim(
  regexp_substr(col6, '[^;]+', 1, levels.column_value)
) as varchar2(1000)) as dummy_col
from table1,
    table(cast(multiset(
      select level from dual
      connect by level <= length (regexp_replace(col6, '[^;]+')) + 1
    ) as sys.OdciNumberList)) levels
    where col6 is not null;

0 个答案:

没有答案