How to move a table from one schema to another
The other day, I was asked how to move a table from one schema to another. The answer, as we all know, is "you can't do that: you have to create a new table as a copy of the old one, or use export/import. It will take a long long time." Not true.
In fact you can move a table from one schema to another, because partition exchange DDL works across schemas. Like this:
drop user a cascade; drop user b cascade; grant dba to a identified by a; grant dba to b identified by b; create table a.t(c integer); insert into a.t values(1); commit; create table b.t(c integer) partition by hash (c) (partition t1); alter table b.t exchange partition t1 with table a.t;
And a.t is now b.t with no down time, undo, or redo.
You do need to be licensed for partitioning, of course.