Я использовал метод, который вы много приняли, но, как кто-то указал, он не дублирует ограничения (за исключением 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;