知识大全 9i新特性之——在线表格重定义研究5

Posted 过程

篇首语:年轻不是用来放纵的理由而是奋斗的资本!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 9i新特性之——在线表格重定义研究5相关的知识,希望对你有一定的参考价值。

   所有的工作都准备完成 我们执行重构完成的过程 这个过程将执行表的交换

  SQL> execute DBMS_REDEFINITION FINISH_REDEF_TABLE( MYTEST TEST INT_TEST );PL/SQL procedure successfully pleted

  我们还是往test表中插入数据 将有什么结果呢?

  SQL> insert into test values( ); row inserted

  SQL> select count(*) from test;       

  SQL> select count(*) from int_test;       

  SQL> select * from mlog$_test;select * from mlog$_testORA : table or view does not exist

  SQL> select * from rupd$_test;select * from rupd$_testORA : table or view does not exist

  SQL> select c from audit_test;

  可以看到 这里的触发器执行的是以前在ini_test(中间表)上的触发器 上一次是 这次是

  这里发生了一个很有趣的转换 其实整个核心就是这里 ORACLE这里完成了表test到int_test的表换名的工作 只是所有的约束 索引或触发器名称还是保持了原来的名称

  SQL> select t index_name t table_name from user_indexes t;INT_TEST_PK                    TESTPK_TEST_ID                     INT_TEST

  SQL> select t trigger_name t table_name from user_triggers t;TR_INT_TEST                    TESTTR_TEST                        INT_TEST

  我们检查对象权限

  SQL> select * from USER_TAB_PRIVS_MADE;SYSTEM  INT_TEST   MYTEST  SELECT   NO        NOSYSTEM  INT_TEST   MYTEST  DELETESYSTEM  TEST       MYTEST     SELECT    NO        NOSYSTEM  TEST       MYTEST     UPDATE

  这里可以看到 对于所有数据字典中的这两个名称 其实是完成了一个表的名字对换的过程 所以对于原表的特性 我们必须在新表中给予相同的特性 这样才能真正的转换到新的表

   大功告成 我们可以删除中间表 并且有可能的话 修改约束 索引 触发器的名称与原来一致 如果你认为不重要 可以不予修改

  SQL> drop table int_test;Table dropped

  如果是 以上版本 我们可以对索引 约束换名 但是以下版本 最好就是删除重新建立了

  如果运行了START_REDEF_TABLE 过程开始 我们就必须运行

  dbms_redefinition abort_redef_table( MYTEST TEST INT_TEST );来终止整个重构过程 到这里 就算是完了

  SQL> select object_name object_type status object_id data_object_id from user_objects order by ;

  OBJECT_NAME                                                                      OBJECT_TYPE        STATUS  OBJECT_ID DATA_OBJECT_ID AUDIT_TEST   TABLE               VALID               TEST          TABLE               VALID       TEST          TABLE PARTITION    VALID                 TEST          TABLE PARTITION    VALID                 TEST          TABLE PARTITION    VALID                 TEST          TABLE PARTITION    VALID                

   rows selected

  看到这里 你也应该相信转换已经完成了吧 现在是分区表了

  总结

  本文不想从大的框架上来说明问题 而是用一些例子来说明问题

  这样可能会更让大家明白其中发生的一切

  这里尽量的模拟了实际可能会遇到的情况

  如约束 索引 触发器 对象权限 这个在重新定义的时候需要注意什么 需要我们手工完成什么

  外键约束这里没有举例说明 其实与普通约束一样 只是在中间表上建立外键约束的时候 最好先禁止掉(DISABLE) 等完成之后再打开

cha138/Article/program/Oracle/201311/17859

相关参考

知识大全 9i新特性之——在线表格重定义研究4

  创建我们需要重新定义的中间表这个是一个分区表以后我们将把原表的所有数据在线转移到该表上来  SQL>createtableint_test(aintbint)partitionbyrange

知识大全 Oracle 9i新特性研究系列之四 -- 延续性初始化参数文件

Oracle9i新特性研究系列之四--延续性初始化参数文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 9i新特性之二安全篇

  这篇文章主要讲解应用程序客户端访问数据库的新特性有些地方理解不好  写得也不是很好请大家帮忙指正谢谢!  I安全认证拥有  解决了阻止未经认证的用户通过其他客户端访问数据的问题  在隐藏密码的实现

知识大全 Oracle9i自动PGA管理的新特性

Oracle9i自动PGA管理的新特性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Orac

知识大全 在Oracle10g和9i上一些新的特性的总结

在Oracle10g和9i上一些新的特性的总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!内部P

知识大全 oracle9i新特性概要

Oraclei电子商务平台       Oraclei通过提供旨在用于电子商务环境的一系列特定功能和产品束像Oraclei那样继续

知识大全 Oracle9i新特性-索引监视及注意事项[修正版]

Oracle9i新特性-索引监视及注意事项[修正版]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Spring 2.5.6新特性之packagesToScan

Spring2.5.6新特性之packagesToScan  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 可与Spreadsheets媲美的在线表格系统:EditGrid

可与Spreadsheets媲美的在线表格系统:EditGrid  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Struts自定义标签--使用表格显示数据

Struts自定义标签--使用表格显示数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  app