Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  397 随笔 :: 33 文章 :: 29 评论 :: 0 Trackbacks
关于模式对象的一些操作技巧
 
 
    模式对象基本上已经都介绍完了,还需要在做一些扫尾的工作,将一些小的操作技巧稽核在一起介绍一下。因为太小的操作技巧,而且本身的内容也很简单,不值得花费太多的篇幅来记载,所以专门花一篇的篇幅来总结这些东西。
 
 
一、用CREATE SCHEMA创建多个对象
 
    Oracle可以使用CREATE SCHEMA语句来同时创建多个对象,用原话就是:Use the CREATE SCHEMA statement to create multiple tables and views and perform multiple grants in your own schema in a single transaction.
 
    操作的语法很简单,看下面的例子就可以完全掌握:
 
    create schema authorization test
    create table t11(a int,b int)
    create view t111 as select * from t11
    grant select on t111 to wangxiaoqi;
 
    需要说明的问题有3点:
 
    1、这个语句不是用来创建schema的,而是创建schema中的对象,即user是需要事先创建好的
    2、DBA默认不具备执行其他用户的schema,即必须以authorization后面的user登录方可执行该语句
    3、该语句只支持CREATE TABLE、CRAETE VIEW、GRANT三个语句
 
 
二、重命名模式对象
 
    绝大多数的object都是可以重命名的,语法是:RENAME ... TO ...
 
    举例(无需指名类型):
 
    rename t11 to t22;
    rename t111 to t222;
 
    说明:
 
    1、支持的类型有:table、view、sequence、synonym
    2、当rename时,对象的constraint、index也相应更新
    3、不支持:PLSQL单元、public synonym、index、cluster
 
 
三、删除表和簇
 
    用于删除Oracle中的表的命令有3种,分别是delete、drop、truncate,来看一下各自的语法:
 
    delete from t11; --可以加where子句
    drop table t11;
    truncate table t11;
 
    关于具体的truncate用法和这三种删除方法的比较,在我之前的文章《Truncate Table介绍》里有比较详细的介绍,可以看哪个内容。
 
 
四、启用/停用Trigger
 
    启用和停用触发器的语法也还是比较简单的,看一下吧:
 
    alter trigger xxxx enable;
    alter table xxxx enable all trigger;
 
    alter trigger xxxx disable;
    alter table xxxx disable all trigger;
 
    触发器的停用,一般是由于以下几个原因:
 
    1、触发器的参照对象当前不可用
    2、需要执行大量装载而又不希望激活触发器
    3、正在往使用触发器的表里装载数据
 
    需要专门说明的是,以下几种情况,触发器会被隐式激活:
 
    1、在一个相关的表上执行DML
    2、在数据库或模式中的对象上执行某DDL语句
    3、特殊的数据库时间发生(startup、shutdown、servererror)
 
 
五、对象的依赖性
 
    对象如果被修改之后,依赖于它的其它对象很有可能也会受到影响,变成INVALID状态,这个关系比较复杂,用一张图表示:
 
    rely
 
    要将INVALID的OBJECT变为VALID很简单,只需要重新编译即可,语法如下:
 
    alter view xxxx compile;
    alter procedure xxxx complie;
    alter package xxxx compile body;
    alter package xxxx compile package;
 
 
 
posted on 2009-07-19 22:36 decode360 阅读(164) 评论(0)  编辑  收藏 所属分类: 08.DBA

只有注册用户登录后才能发表评论。


网站导航: