Создать таблицу в блоках - Oracle SQL - PullRequest
0 голосов
/ 05 мая 2019

У меня есть таблица:

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, чтобы таблица создавалась и записи обрабатывались в кусках?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...