У меня есть таблица:
table1
f_name f_content
test1.txt YL*1**50*1~
RX*1~
LR*2~
test2.txt YL*1**49*1~
EE*1~
WW*2~
SQL-запрос:
CREATE TABLE table1_with_line
AS
SELECT
f_name,
level AS line_num,
regexp_replace(regexp_substr(t1.f_content, '[^~]+', 1, level), '(^[[:space:]]+)') line
FROM
table1 t1
CONNECT BY level <= regexp_count(f_content, '~')
AND PRIOR f_name = f_name
AND PRIOR sys_guid() IS NOT NULL;
В моей таблице table1 содержится 30 000 записей, а f_content находится в CLOB. Каждая запись в CLOB имеет около 100 строк, разделенных ~.
Прошло более 20 часов, и запрос все еще выполняется.
Есть ли способ, которым я могу разбить его на несколько кусков в SQL, чтобы таблица создавалась и записи обрабатывались в кусках?