1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
PROMPT ===================================================================
PROMPT Create Table with PK
PROMPT ===================================================================
CREATE TABLE my_table
(id1 INTEGER
,id2 INTEGER
,col1 VARCHAR2(4000)
,PRIMARY KEY
(id1
,id2))
PARTITION BY RANGE
(id1)
(PARTITION my_table_pt_0 VALUES LESS THAN ( 1 ))
/
ALTER TABLE my_table
ENABLE ROW MOVEMENT
/
DECLARE k INTEGER;
BEGIN
k := 0;
FOR i IN 1..100 LOOP
EXECUTE IMMEDIATE
'ALTER TABLE my_table ADD PARTITION my_table_pt_'||TO_CHAR(i)||' VALUES LESS THAN ('||TO_CHAR(i+1) ||') ';
IF i < 50 THEN
FOR j in 1..10 LOOP
INSERT INTO my_table
(id1,id2,col1)
VALUES
(i,j,'X');
END LOOP;
END IF;
END LOOP;
END;
/
COMMIT
/
PROMPT ===================================================================
PROMPT Update PK
PROMPT ===================================================================
UPDATE my_table
SET id1 = id1 + 10
/
COMMIT
/
PROMPT ===================================================================
PROMPT Clean-up
PROMPT ===================================================================
DROP TABLE my_table
/ |
Partager