DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS的一點測試
9i進入了DBMS_REDEFINITION,10g補充了COPY_TABLE_DEPENDENTS過程解決了約束的命名問題,非常方便了。
SQL> CREATE TABLE T AS SELECT ROWNUM ID, A.* FROM USER_OBJECTS A;
Table created.
SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (ID);
Table altered.
SQL> ALTER TABLE T ADD CHECK (ID > 0);
Table altered.
SQL> CREATE INDEX IND_T_NAME ON T (OBJECT_NAME);
Index created.
SQL> CREATE OR REPLACE TRIGGER TRI_T
2 BEFORE INSERT ON T
3 FOR EACH ROW
4 BEGIN
5 NULL;
6 END;
7 /
Trigger created.
SQL>
SQL> CREATE TABLE T_INTER
2 PARTITION BY HASH (ID)
3 PARTITIONS 4
4 AS SELECT ROWNUM ID, A.*
5 FROM USER_OBJECTS A
6 WHERE 1 = 2;
Table created.
SQL> SET SERVEROUT ON SIZE 1000000
SQL> EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE(USER, 'T')
PL/SQL procedure successfully completed.
SQL> EXEC DBMS_REDEFINITION.START_REDEF_TABLE(USER, 'T', 'T_INTER')
PL/SQL procedure successfully completed.
SQL> select count(*) from t;
COUNT(*)
----------
25
SQL> select count(*) from t_inter;
COUNT(*)
----------
25
SQL> VAR V_NUM NUMBER
SQL> BEGIN
2 DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS(USER, 'T', 'T_INTER',
3 DBMS_REDEFINITION.CONS_ORIG_PARAMS, TRUE, TRUE, TRUE, TRUE, :V_NUM, TRUE);
4 END;
5 /
PL/SQL procedure successfully completed.
SQL> print v_num
V_NUM
----------
0
SQL> SELECT TABLE_NAME, INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME IN ('T', 'T_INTER');
TABLE_NAME INDEX_NAME
------------------------------ ------------------------------
T IND_T_NAME
T PK_T
T_INTER TMP$$_IND_T_NAME0
T_INTER TMP$$_PK_T0
SQL> SELECT TABLE_NAME, CONSTRAINT_NAME,CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME IN ('T', 'T_INTER');
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
T PK_T P
T SYS_C004042 C
T_INTER TMP$$_SYS_C0040420 C
T_INTER TMP$$_PK_T0 P
SQL> SELECT TABLE_NAME, TRIGGER_NAME FROM USER_TRIGGERS WHERE TABLE_NAME IN ('T', 'T_INTER');
TABLE_NAME TRIGGER_NAME
------------------------------ ------------------------------
T_INTER TMP$$_TRI_T0
T TRI_T
SQL> exec dbms_redefinition.sync_interim_table('XYS','T','T_INTER');
PL/SQL procedure successfully completed.
SQL> EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE(USER, 'T', 'T_INTER')
PL/SQL procedure successfully completed.
SQL> SELECT TABLE_NAME, INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME IN ('T', 'T_INTER');
TABLE_NAME INDEX_NAME
------------------------------ ------------------------------
T IND_T_NAME
T PK_T
T_INTER TMP$$_IND_T_NAME0
T_INTER TMP$$_PK_T0
SQL> SELECT TABLE_NAME, CONSTRAINT_NAME,CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME IN ('T', 'T_INTER');
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
T SYS_C004042 C
T PK_T P
T_INTER TMP$$_PK_T0 P
T_INTER TMP$$_SYS_C0040420 C
SQL> SELECT TABLE_NAME, TRIGGER_NAME FROM USER_TRIGGERS WHERE TABLE_NAME IN ('T', 'T_INTER');
TABLE_NAME TRIGGER_NAME
------------------------------ ------------------------------
T TRI_T
T_INTER TMP$$_TRI_T0
SQL> SELECT TABLE_NAME, PARTITION_NAME FROM USER_TAB_PARTITIONS WHERE TABLE_NAME = 'T';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
T SYS_P21
T SYS_P22
T SYS_P23
T SYS_P24
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1813046/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cursor express的一點測試!Express
- 測試流程與測試人員配置的一點感想
- mv(materialized view)的一點測試ZedView
- Index Joins的一點測試!Index
- 軟體測試流程的一點感悟
- index clusterring cluster的一點測試!Index
- 測試的思考點
- 軟體穩定性測試的測試點
- 有關oracle external table的一點測試。Oracle
- 有關lock的一點測試總結!
- 許可權傳遞的一點測試!
- nested loops 和hash join的一點測試OOP
- sys_refcursor以及cursor express的一點測試!Express
- 引數SKIP_UNUSABLE_INDEXES的一點測試!Index
- APP測試設計測試用例的要點APP
- redis測試點Redis
- 學會程式碼不是測試的終點而是測試開發的起點
- 基於函式index的一點簡單測試!函式Index
- 行連線的一點內部儲存測試!
- fast_start_parallel_rollback引數的一點測試ASTParallel
- 軟體測試中的43個功能測試點(上)
- 軟體測試中的43個功能測試點(下)
- 資料埋點測試的那點事
- OTT 方面的測試,有沒有熱 做過系統一點的測試,求指教。
- 最全APP測試思想及流程要點,高薪測試人員一定要看!APP高薪
- Web測試入門——軟體測試員必知的50個常見測試點Web
- 關於軟體質量和軟體測試的一點點看法 (轉)
- 4大軟體測試策略的特點和區別(單元測試、整合測試、確認測試和系統測試)
- 軟體驗收測試和系統測試的區別點
- (一)效能測試(壓力測試、負載測試)負載
- 遷移測試中最重要的一點,竟然經常被忽略?
- 關於Oracle 9i RAC enqueue等待的一點測試OracleENQ
- App測試、Web測試和介面測試一般測試流程APPWeb
- 功能測試點總結
- ios APP 測試思考點iOSAPP
- 效能測試中唯一標識的 JMH 測試
- 自己編寫的(測試點總結)
- 有關測試開發的點在哪