2008-11-04 76 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

相關問題