Quando você cria faz um CTAS (criar tabela como select) de uma tabela você só pega a estrutura, mas perde o índice, PK, FK, etc.
Exemplo:
create table t1 select * from table2;
Como pode ser feita uma cópia da estrutura da tabela que inclua essas coisas sem fazer um backup?
TABLE
é o tipo de objeto (você também pode extrairINDEX
,VIEW
,FUNCTION
,PROCEDURE
etc)ou:
dbms_metadata.get_ddl
é o caminho a seguir, pois preserva vários aspectos que uma consulta CTAS não preserva.A resposta de Phil é boa e provavelmente o que você deseja. O SQL Developer fornece um assistente para essa funcionalidade no menu Ferramentas.
Dependendo de seus requisitos, você pode querer fazer uma exportação (que usa o pacote dbms_metadata). O Oracle Concepts Guide (leitura obrigatória para quem usa Oracle) tem uma seção sobre Oracle Data Pump Export and Import (ênfase minha).
Existem basicamente 3 maneiras de copiar a estrutura e os dados para outras tabelas