Можно ли создать таблицу из запроса, сформированного с помощью предложения with?
with
Конечно:
CREATE TABLE t AS WITH some_data AS ( SELECT 1 as some_value FROM dual UNION ALL SELECT 2 FROM dual ) SELECT * FROM some_data
Оператор CREATE TABLE table_name AS создает таблицу на основе оператора выбора.Решение для предложения с будет:
CREATE TABLE t AS SELECT * FROM ( WITH some_data AS ( SELECT 1 as some_value FROM dual UNION ALL SELECT 2 FROM dual ) );