Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: partitioned data
"Cupofjava1961" <cupofjava1961_at_aol.com> wrote in message
news:20040328182006.17332.00000227_at_mb-m23.aol.com...
> So, are you saying that the data will be swapped and exist in two places,
> redundantly?
Maybe an example would help to clarify matters:
I created a simple partitioned table of two (2) partitions with an identification of the original source of the data: CREATE TABLE part_table1
(
part_id NUMBER(1), part_text VARCHAR2(40)
PARTITION part_1 VALUES LESS THAN ( 5 ), PARTITION part_2 VALUES LESS THAN ( 9 )
INSERT INTO part_table1
SELECT
ROWNUM, 'Original table' FROM all_objects WHERE rownum < 9
SELECT * FROM part_table1;
PART_ID PART_TEXT
---------- --------------
1 Original table 2 Original table 3 Original table 4 Original table 5 Original table 6 Original table 7 Original table 8 Original table
8 rows selected.
Now, I create another (unpartitioned) table that has the same structure as the partitioned table, and populate that table with different data:
CREATE TABLE outside_tab
AS SELECT *
FROM part_table1 WHERE 1=0
INSERT INTO outside_tab
SELECT
0, 'Outside Table' FROM all_objects WHERE rownum <= 20
SELECT * FROM outside_tab;
PART_ID PART_TEXT
---------- -------------
0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table
20 rows selected.
Now to exchange the first partition with the outside table:
ALTER TABLE part_table1 EXCHANGE PARTITION part_1 WITH TABLE outside_tab;
SELECT * FROM part_table1;
PART_ID PART_TEXT
---------- --------------
0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 0 Outside Table 5 Original table 6 Original table 7 Original table 8 Original table
24 rows selected.
SELECT * FROM outside_tab;
PART_ID PART_TEXT
---------- --------------
1 Original table 2 Original table 3 Original table 4 Original table
As you can see, the data still exists in one place but in different places.
Douglas Hawthorne Received on Sun Mar 28 2004 - 18:15:32 CST