Просто используйте, где пункт, который не выберет строк:
create table xyz_new as select * from xyz where 1=0;
следующие вещи не будут скопированы в новую таблицу:
, Это также не обрабатывает разделы
<час>Используя sql разработчика выбирают таблицу и нажимают на вкладку
DDL, можно использовать тот код для составления новой таблицы без данных, когда Вы работаете, это в sql рабочем листе
sqldeveloper является свободное для использования приложения от оракула.
, Если таблица имеет последовательности или инициировала ddl, будет иногда генерировать тех для Вас также. Просто необходимо быть осторожными, что приказывает, чтобы Вы сделали их в и знали, когда включить или выключить триггеры.
Я использовал метод, что Вы приняли много, но поскольку кто-то указал, что он не копирует ограничения (за исключением NOT NULL, я думаю).
А больше передового метода, если Вы хотите копировать полную структуру:
SET LONG 5000
SELECT dbms_metadata.get_ddl( 'TABLE', 'MY_TABLE_NAME' ) FROM DUAL;
Это даст Вам, полные создают текст инструкции, который можно изменить, как Вы желаете для того, чтобы составить новую таблицу. Необходимо было бы изменить имена таблицы и всех ограничений, конечно.
(Вы могли также сделать это в более старых версиях с помощью EXP/IMP, но это намного легче теперь.)
Отредактированный для добавления , Если таблица Вы после, находится в различной схеме:
SELECT dbms_metadata.get_ddl( 'TABLE', 'MY_TABLE_NAME', 'OTHER_SCHEMA_NAME' ) FROM DUAL;