jak wspomniano tutaj:https://forums.oracle.com/thread/696477 i tutaj :wstaw oświadczenie z nieważną klauzulą wyrocznia identyfikatorów
klauzula WITH jest częścią instrukcji select, więc po prostu spróbuj otoczyć ją instrukcją INSERT, jak poniżej:
INSERT INTO SOME_TABLE
WITH seq AS
(SELECT to_char(LEVEL - 1) p FROM dual CONNECT BY LEVEL <= 10)
SELECT old_value,
new_value
FROM (SELECT to_char(t1.p) old_value,
to_char(t2.p) new_value
FROM (SELECT row_number() over(ORDER BY p) rn,
p
FROM seq) t1,
(SELECT row_number() over(ORDER BY dbms_random.random) rn,
p
FROM seq) t2
WHERE t1.rn = t2.rn);