2010-03-03 91 views
1

如何合併Oracle中的表以及它的語法是什麼?Oracle中的合併

+3

有一些你的問題的可能的解釋。請詳細解釋。你希望人們花時間回答你的問題;你能做的最少的就是花一些時間來適當地設置它。 – APC 2010-03-03 16:42:45

+0

合併,ANSI函數,解釋:http://stackoverflow.com/questions/1108950/can-nvl-function-be-cascaded – 2010-03-03 16:45:19

+0

我認爲這足以解釋和簡單。我從表中刪除了數千條記錄,現在我只想合併該表。 – user269484 2010-03-04 05:18:01

回答

2

​​3210是一個函數,它接受兩個(或更多)參數並返回非空的第一個參數。

給定一個表Age叫,說一個空列,你可以寫:

select coalesce(Age, 18) from MyTable; 
+0

函數合併和NVL函數的區別是什麼? 謝謝 - Jay – Jay 2010-03-03 14:17:12

+0

@Jay:'COALESCE()'是可移植的 - 它是ANSI標準的一部分。 – 2010-03-03 14:21:43

+0

@Jay - 除了Adam所說的''COALESCE()'可以接受任意數量的參數,而'NVL()'只接受這兩個參數。 – APC 2010-03-03 16:37:47

4

我最初懷疑你在問合併表空間:

alter tablespace mytablespace coalesce; 

這樣就結合連續擴展到更大的範圍。見Oracle 10G Docs

但現在我認爲你正在尋找也許什麼是

alter table mytable shrink space compact; 

詳細this Oracle Magazine article Thiis描述。

+0

我不想合併整個表空間,我只需要合併一個表。 – user269484 2010-03-04 05:19:31

+0

這裏的意見可能會有所幫助:http://p2p.wrox.com/oracle/19758-oracle-8i-alter-table-table-coalesce-partition.html – 2010-03-04 05:54:12

+0

@usernnn,請參閱我的修訂答案。那是你在找什麼? – 2010-03-04 10:05:27

1

如果我理解你想要做什麼,你需要:

ALTER TABLE blah MOVE TABLESPACE different-tablespace; 

然後移回:

ALTER TABLE blah MOVE TABLESPACE original-tablespace;