Oracle создает таблицу с использованием предложения

Можно ли создать таблицу из запроса, сформированного с помощью предложения with?

Ответы

Ответ 1

Конечно:

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

Ответ 2

Оператор 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
) 
);