2010-03-03 92 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;