Can I create a table from a query formed using with clause?
with
The CREATE TABLE table_name AS statement creates a table based on a select statement. The solution for a with clause will be :
CREATE TABLE t AS SELECT * FROM ( WITH some_data AS ( SELECT 1 as some_value FROM dual UNION ALL SELECT 2 FROM dual ) );