如果我有這樣一個表:有沒有一種簡單的方法克隆Oracle中表的結構?
CREATE TABLE FRED
(
recordId number(18) primary key,
firstName varchar2(50)
);
有一種簡單的方法來複制它的結構(不是它的數據)爲給定的名稱的另一個表。基本上我想創建具有完全相同結構的表,但名稱不同,以便我可以在其上執行一些功能。我想在代碼中明顯做到這一點。 Java最好,但大多數其他語言應該是類似的。
如果我有這樣一個表:有沒有一種簡單的方法克隆Oracle中表的結構?
CREATE TABLE FRED
(
recordId number(18) primary key,
firstName varchar2(50)
);
有一種簡單的方法來複制它的結構(不是它的數據)爲給定的名稱的另一個表。基本上我想創建具有完全相同結構的表,但名稱不同,以便我可以在其上執行一些功能。我想在代碼中明顯做到這一點。 Java最好,但大多數其他語言應該是類似的。
如果你正在尋找一種方式來找到確切的DDL來重新創建表,包括存儲子句,您可以使用
select dbms_metadata.get_ddl('TABLE', 'TABLE_NAME', 'SCHEMA_NAME') from dual
描述here。
CREATE TABLE tablename AS SELECT * FROM orginaltable WHERE 1 = 2;
編輯:WHERE子句禁止任何行限定。
不會複製它的數據嗎?我只是想要結構。 – rustyshelf 2008-11-04 02:54:04
由於1 = 2總是爲假,所以沒有行被複制。你也不會得到任何約束,外鍵,索引等 – 2008-11-04 02:57:20
我對你爲什麼想要在代碼中做這件事感到懷疑 - 在Oracle中即時創建表格非常罕見。也許如果你提供更多的細節,我們可能會提出一種克服完成這個任務的方法。 – 2008-11-04 04:17:27