Usando
select ... as ... criar uma tabela nunca restrições de cópias. Se desejar que a nova tabela herde restrições das tabelas originais, você deve criar as novas restrições manualmente. Como @Davek aponta,
not null as restrições serão copiadas de uma única tabela select ... as ... . Imagino que seja porque eles são atributos e restrições de coluna. No entanto, uma vez que a coluna tenha mais de uma origem, é razoável que o Oracle não tente aplicar essa restrição. Em resposta à pergunta de acompanhamento "seria possível dar
tableC as mesmas restrições de tableA ou tableB , após um CTA?":Claro que é possível, mas não há um único comando para fazê-lo. Você poderia escrever um procedimento que usasse SQL dinâmico para copiar as restrições. No entanto, a menos que você queira automatizar esse comportamento, geralmente será mais fácil extrair o DDL usando um IDE e alterar o nome da tabela.