2008-11-04 51 views
3

如果我有这样一个表:有没有一种简单的方法克隆Oracle中表的结构?

CREATE TABLE FRED 
(
recordId number(18) primary key, 
firstName varchar2(50) 
); 

有一种简单的方法来复制它的结构(不是它的数据)为给定的名称的另一个表。基本上我想创建具有完全相同结构的表,但名称不同,以便我可以在其上执行一些功能。我想在代码中明显做到这一点。 Java最好,但大多数其他语言应该是类似的。

+0

我对你为什么想要在代码中做这件事感到怀疑 - 在Oracle中即时创建表格非常罕见。也许如果你提供更多的细节,我们可能会提出一种克服完成这个任务的方法。 – 2008-11-04 04:17:27

回答

12

如果你正在寻找一种方式来找到确切的DDL来重新创建表,包括存储子句,您可以使用

select dbms_metadata.get_ddl('TABLE', 'TABLE_NAME', 'SCHEMA_NAME') from dual 

描述here

6

CREATE TABLE tablename AS SELECT * FROM orginaltable WHERE 1 = 2;

编辑:WHERE子句禁止任何行限定。

+0

不会复制它的数据吗?我只是想要结构。 – rustyshelf 2008-11-04 02:54:04

+0

由于1 = 2总是为假,所以没有行被复制。你也不会得到任何约束,外键,索引等 – 2008-11-04 02:57:20

相关问题