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

oracle 约束(constraint)的几个参数的小研究

首先搞清下几个概念:
ORACLE中,约束分deferred 跟 immediate 2种:
  deferred:如果 Oracle 在事务提交(commit)时才对约束执行检查,则称此约束是延迟的(deferred)。如果数据违反了延迟约束,提交操作将导致事务被回滚(undo)。
  immediate:如果约束是即时的(immediate)(非延迟的),则此约束将在语句执行结束后进行检查。如果数据违反了延迟约束,语句将被立即回滚。
一般情况下,我们用的约束初始都是immediate型的(默认),而且不好转为deferred型。但是如果初始是deferrable(需要手动指定),那deferred跟immediate 2种状态可以随意转换。
此外,约束有以下4种状态:
  ENABLE(启用)确保所有输入的数据都遵从约束(constraint)
  DISABLE(禁用)总是允许输入数据,无论数据是否遵从约束
  VALIDATE(验证)确保已存在的数据遵从约束
  NOVALIDATE(无验证)允许已存在的数据不遵从约束
ENABLE VALIDATE 与 ENABLE 相同。Oracle 将检查约束,并保证所有数据均遵从约束。
ENABLE NOVALIDATE 表示所有新插入或被修改的数据都必须遵从约束,但允许已存在的数据不遵从约束。
DISABLE NOVALIDATE 与 DISABLE 相同。Oracle 不会检查约束.
DISABLE VALIDATE 将禁用约束,移除约束使用的索引,并禁止修改约束键的数据。
约束不论哪种类型,要能够生效,必须状态是enable才行。
SQLPLUS(oracle 10.2.0.1):
--deferred 跟 immediate的对比试验-----------------------------
SQL> drop table aa purge;
Table dropped.
SQL> create table aa ( id number,name varchar2(20),constraint pk primary key(id));
Table created.
SQL> col constraint_name for a11
SQL> select CONSTRAINT_NAME ,CONSTRAINT_TYPE,TABLE_NAME ,STATUS,DEFERRABLE,DEFERRED,validated from u
ser_constraints where table_name='AA';
CONSTRAINT_ C TABLE STATUS   DEFERRABLE     DEFERRED  VALIDATED
----------- - ----- -------- -------------- --------- -------------
PK          P AA    ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED
--可以看到,默认的是NOT DEFERRABLE,下面我们将它转为immediate试试
SQL> set constraint pk immediate;
set constraint pk imme


相关文档:

Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

原文:http://www.blogjava.net/Unmi/archive/2009/01/05/249956.html
在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法:
1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中
2. 建立数据库间的 dblink,然后用 create table B as select * from A ......

oracle中比较实用sql语句

-- 查看ORACLE 数据库中本用户下的所有表
SELECT table_name from user_tables;
-- 查看ORACLE 数据库中所有用户下的所有表
select user,table_name from all_tables;
-- 查看ORACLE 数据库中本用户下的所有列
select table_name,column_name from user_tab_columns;
-- 查看ORACLE 数据库中本用户下的所有列
se ......

oracle数据字典小结


下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
   
    一、用户
    查看当前用户的缺省表空间
    SQL>select username,default_tablespace from user_users;
    查看当前用户的角色
    SQL ......

trunc()函数的学习 (oracle)

trunc()函数有两种用法 1:后面跟日期  2: 后面跟数字
A: SELECT a.times,to_date(a.times,'yyyymmdd'),trunc(to_date(a.times,'yyyymmdd'),'month') from dmf_loan_limit a
显示的结果为:
1 20080131     2008-1-31    2008-1-1
2 20080131  &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号