易截截图软件、单文件、免安装、纯绿色、仅160KB

数据库视图(oracle)

使用数据库视图通常出于以下两个目的:1。降低操作复杂度;视图是预编译的查询操作,一次定义,之后可快速调用;2。提高系统安全。视图作为数据库对象,可以将其权限独立出来赋给用户,可避免用户对基表的盲目危险操作,同时也可屏蔽一部分私密的属性列。
定义语句:
 CREATE
[OR REPLACE
]
[FORCE
|NOFORCE
] VIEW
YOUR_VIEW_NAME
        (COLNAME1,COLNAME2,COLNAME3,...,COLNAMEn)
AS
        [YOUR_QUERY_STATEMENTS WILL WRITE HERE !]
        [WITH CHECK OPTION
[CONSTRAINTNAME
constraint_name]]
        [WITH READ ONLY
]
对视图的查询操作实际是运行建立视图的sql语句。所以当用户自己修改基表信息时,主表改变,查询视图时也同时输出最新的信息,这样做可以尽可能减少对数据库空间的占用,并且不需要同步操作。
视图也可进行DML操作,但是在操作时要注意以下原则:
条件一:在连接视图中不能有Order by排序语句。
      这主要是因为采用了Order by排序语句后,记录的物理存储顺序发生了改变。此时,若在视图上进行了数据更新,则其对应的基础表找不到具体更改的物理位置。所以,会以失败告终。
  类似的,也不能够在SQL语句中含有Group by、connetc
by等语句。若有这些语句的话,则数据库都不允许对数据进行数据更新操作。
条件二:基础表中所有的NOT NULL列都必须在这个视图中。
      若想在视图上进行数据更新操作的话,则必须要求对应基础表中的所有不允许空的字段都在当前的视图中。其实这很好理解,若每个字段不允许为空,则又不在当前的视图中,则新增加记录的时候,这个字段就没有被赋值,故在保存时就会被基础表所拒绝。
      另外,需要注意的是,无论是更新还是删除语句,若基础表中的某个非空列不在这个视图中,都无法进行更改。也许有人会问,如果用户不是增加记录,而只是更新
数据。那难道也要求在视图中包含所有的非空字段呢?答案是肯定的。因为数据库系统在提交更新事务之前就会对这个条件进行判断。
条件三:需要更新的列不是虚拟列。
     在视图中,可能有些列的结果是通过列表达式定义的,在基础表中并不存在。我们


相关文档:

在oracle中增加用户限制

     今天在项目开发中,发现数据库连接数过多,oracle中存在很多超时连接。导致新增客户端无法连接到数据库。所以设置了强制释放oracle连接属性。
在网上查询了设置说明如下:
sqlplus /nolog
打开sqlplus
connect system/bianqiwei@orcltns as sysdba
使用具有dba权限得用户登陆oracle
show p ......

使用CodeSmith生成oracle数据库表的实体层(Model)

使用CodeSmith生成oracle数据库表的实体层(Model)
http://blog.csdn.net/dacong/archive/2009/01/27/3853663.aspx
自己写的,CodeSimth中的例子都是msSQL server的,所以自己写了个支持Oracle数据库表的,不一定很完善,适用就好,数据类型没有周全考虑,只考虑了常用的一些类型,增加了个表名字属性,采用的.net2.0我结 ......

Oracle 9i/10g pfile/spfile 参数文件详解


(1)Pfile文件
    Pfile(Parameter File)文件是基于文本格式的参数文件,含有数据库的配置参数。
    Oracle 9i在安装时为每个数据库建立了一个Pfile,默认的名称为“init+例程名.ora”,这是一个文本文件,可以用任何文本编辑工具打开。
下表为数据库的初始化参 ......

oracle自带的操作文件的包UTL_FILE介绍

    因开发要求,需要对oracle里的数据与数据文件作比较。如采用客户端连接oracle的方式则显得小题大做,且工作量大,不易维护。直接采用存储过程,调用UTL_FILE包的公共过程,显得方便得多。
    首先,需要把数据文件所在的目录注册到oracle中,用create directory。。。语句,然后把此目 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号