Chinaunix首页 | 论坛 | 博客
  • 博客访问: 616623
  • 博文数量: 825
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 14:19
文章分类

全部博文(825)

文章存档

2011年(1)

2008年(824)

我的朋友

分类:

2008-10-27 14:27:19


  SELECT * FROM emp a
  WHERE rowid > ANY
  (SELECT rowid FROM emp b
  WHERE a.ename = b.ename
  )
  可以找到冗余的数据
  今个发现还有一个比较简便的方法,如下使用 exceptions into exceptions;
  
  
    SQL> create table t ( a int, b int, c int );
    表已创建。
    SQL> insert into t select rownum,rownum+1,rownum+2 from all_objects where rownum <5;
    已创建4行。
    SQL> insert into t select *from t where rownum<3;
    已创建2行。
    SQL> commit;
    提交完成。
    SQL> select *from t;
        A     B     C
   ---------- ---------- ----------
        1     2     3
        2     3     4
        3     4     5
        4     5     6
        1     2     3
        2     3     4
    已选择6行。 SQL> create table exceptions(row_id rowid,
    2 owner varchar2(30),  3 table_name varchar2(30),
    4 constraint varchar2(30));
    表已创建。
    SQL> SQL> alter table t add constraint t_unique
    2 unique(a,b,c) exceptions into exceptions;
   alter table t add constraint t_unique
                  * ERROR 位于第 1 行: ORA-02299: 无法验证 (EPUSER.T_UNIQUE) - 未找到重复关键字
    SQL> create table dups
    2 as select *from t where rowid in (select row_id from exceptions);
    表已创建。
    SQL> select *from dups;
        A     B     C
   ---------- ---------- ----------
        1     2     3
        2     3     4
        1     2     3
        2     3     4
    SQL> select row_id from exceptions;
    ROW_ID
   ------------------
   AAAIEJAAKAAAyMSAAA
   AAAIEJAAKAAAyMSAAE
   AAAIEJAAKAAAyMSAAB
   AAAIEJAAKAAAyMSAAF
    SQL> delete from t where rowid in ( select row_id  2 from exceptions );
    已删除4行。
    SQL> insert into t select distinct * from dups;
    已创建2行。
    SQL> SQL> commit;
    提交完成。
    SQL> select *from t;
        A     B     C
   ---------- ---------- ----------
        3     4     5
        4     5     6
        1     2     3
        2     3     4
【责编:admin】

--------------------next---------------------

阅读(303) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~