精华内容
下载资源
问答
  • Oracle 完全删除方法

    2014-09-01 11:37:42
    Oracle 完全删除方法;希望帮到大家
  • oracle完全删除方法

    2012-11-08 18:09:41
    oracle 数据库完全完全删除方法, 希望对你有帮助。
  • 完全删除oracle

    2013-01-18 11:14:26
    linux下完全删除oracle
  • oracle完全删除实例

    千次阅读 2018-11-14 20:26:30
     重建oracle库实例,因此要删除数据库实例 问题解决:  利用自用自带的dbca库管理,实现图形化删除实例  01、登录安装oracle数据库的linux 打开xshell企业版的Xmanager,观察启用窗口默认0.0 [oracle@lab-...

    问题描述:

      重建oracle库实例,因此要删除数据库实例

    问题解决:

      利用自用自带的dbca库管理,实现图形化删除实例

     01、登录安装oracle数据库的linux

    打开xshell企业版的Xmanager,观察启用窗口默认0.0

    [oracle@lab-100 ~]$ export DISPLAY=172.24.0.1:0.0     //linux主机图形化需要展示的目标主机
    [oracle@lab-100 ~]$ xhost +                          //放开连接限制
    access control disabled, clients can connect from any host
    [oracle@lab-100 ~]$ xclock                          //测试目标主机是否展示时钟图形化窗口
    [oracle@lab-100 ~]$ dbca

    02、目标客户端弹出数据库配置                     

    03、选择对数据库实例的管理

     04、探测当前主机已经安装的实例

     05、删除完数据库实例(不存在任何一个实例,就是灰色不可选)

    展开全文
  • Oracle是很难完全删除的 这些文档会告诉你怎样将Oracle完全拆卸 用以解决Oracle安装失败的问题 以及安装挂起问题 此外 压缩包内还有关于重装系统后怎样恢复Oracle使用问题
  • oracle完全卸载并删除服务(通过注册表来完全删除)
  • Oracle 删除表完全相同的两条数据

    千次阅读 2019-11-08 10:44:55
    删除之前首先做好备份!!! 删除重复数据 DELETE FROM table_name a WHERE a.rowid != ( SELECT max(b.rowid) FROM table_name b WHERE b.id = a.id) //根据rowid删除重复数据中较小的rowid ...

    在删除之前首先做好备份!!!
    删除重复数据

    DELETE   
      FROM table_name a   
     WHERE a.rowid != (
     SELECT max(b.rowid)   
       FROM table_name b   
      WHERE b.id = a.id)
      //根据rowid删除重复数据中较小的rowid
    
    展开全文
  • 完全删除oracle11g

    2013-11-14 09:58:16
    完全删除oracle11g
  • 完全删除Oracle数据库

    2013-03-18 10:54:02
    Windows下如何彻底删除Oracle
  • Oracle如何删除表中重复记录

    万次阅读 2018-01-04 18:29:37
    在对数据库进行操作过程中我们可能会遇到这种情况,中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢? 平时工作中可能会遇到当试图对库中的某一列或几列...

    1  引言

    在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢?

    平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。

    2  处理过程

    重复的数据可能有这样两种情况:第一种是表中只有某些字段一样,第二种是两行记录完全一样。删除重复记录后的结果也分为2种,第一种是重复的记录全部删除,第二种是重复的记录中只保留最新的一条记录,一般业务中第二种的情况较多。

     

    2.1  删除重复记录的方法原理

    (1)在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。

    (2)在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大rowid的就可以了,其余全部删除。

     

    2.2  删除部分字段重复数据

    2.2.1  重复记录全部删除

    想要删除部分字段重复的数据,可以使用下面语句进行删除,下面的语句是删除表中字段1和字段2重复的数据:

    DELETE FROM 表名 a

    WHERE  (字段1, 字段2) 

     IN (SELECT 字段1,字段2 

                   FROM   表名

                   GROUP  BY 字段1,

                             字段2

                   HAVING COUNT(1) > 1)

    ;

    上面的语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。所以建议先将查询到的重复的数据插入到一个临时表中,然后进行删除,这样,执行删除的时候就不用再进行一次查询了。如下:

    CREATE TABLE 临时表 AS (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1);

    上面这句话就是建立了临时表,并将查询到的数据插入其中。下面就可以进行这样的删除操作了:

    delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);

    这种先建临时表再进行删除的操作要比直接用一条语句进行删除要高效得多。

    例子:

    wps31E3.tmp 

      DELETE FROM tmp_lhr t

      WHERE  (t.accesscode, t.lastserviceordercode, t.serviceinstancecode) IN

             (SELECT  a.accesscode, a.lastserviceordercode, a.serviceinstancecode 

              FROM   tmp_lhr a

              GROUP  BY a.accesscode,

                        a.lastserviceordercode,

                        a.serviceinstancecode

              HAVING COUNT(1) > 1);

    wps31E4.tmp 

     

    2.2.2  保留最新的一条记录

    假如想保留重复数据中最新的一条记录啊!那怎么办呢?在oracle中,有个隐藏了自动rowid,里面给每条记录一个唯一的rowid,我们如果想保留最新的一条记录,我们就可以利用这个字段,保留重复数据中rowid最大的一条记录就可以了。

    一、  如何查找重复记录?

    SELECT *

      FROM TABLE_NAME A

     WHERE ROWID  NOT IN (SELECT MAX(ROWID)

                       FROM TABLE_NAME D

                      WHERE A.COL1 = D.COL1

                        AND A.COL2 = D.COL2);

    二、  如何删除重复记录?   1、  方法1

    DELETE FROM TABLE_NAME

    WHERE ROWID NOT IN (SELECT MAX(ROWID)

                       FROM TABLE_NAME D

                      group by d.col1,d.col2);

     

    这种方法最简单!!!

    2、  方法2

    DELETE FROM TABLE_NAME A

     WHERE ROWID NOT IN (SELECT MAX(ROWID)

                       FROM TABLE_NAME D

                      WHERE A.COL1 = D.COL1

                        AND A.COL2 = D.COL2);

    3、  方法3 临时表

    由此,我们要删除重复数据,只保留最新的一条数据,就可以这样写了:

    create table 临时表 as select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;

     

    DELETE FROM 正式表 a

    where a.rowid NOT IN (SELECT b.dataid

                          FROM   临时表 b

                          WHERE  a.字段1 = b.字段1

       and a.字段2 = b.字段2);

    commit;

     

    例子:

      DELETE FROM tmp_lhr t

      WHERE  t.rowid not in (SELECT MAX(ROWID)

                         FROM   tmp_lhr a

                         GROUP  BY a.accesscode,

                                   a.lastserviceordercode,

                                   a.serviceinstancecode);

    wps31E5.tmp 

     

     DELETE FROM tmp_lhr t

     WHERE  t.rowid !=

            (SELECT MAX(ROWID)

             FROM   tmp_lhr a

             WHERE  a.accesscode = t.accesscode

             AND    a.lastserviceordercode = t.lastserviceordercode

             AND    a.serviceinstancecode = t.serviceinstancecode);

    wps31E6.tmp 

     

    2.2.3  删除以某个字段为准的记录

     ----任意保留一条记录

    DELETE FROM ods_entity_info_full_lhr_01 T

    WHERE  T.ROWID NOT IN (SELECT MAX(A.ROWID)

                           FROM   ods_entity_info_full_lhr_01 A

                           GROUP  BY entity_code,

                                     entity_type); 

            ---保留 entity_id 最大的一条记录

            DELETE FROM ods_entity_info_full_lhr_01 a

            WHERE  a.rowid NOT IN

                   (SELECT t.rowid

                    FROM   ods_entity_info_full_lhr_01 t

                    WHERE  (t.entity_code, t.entity_type, t.entity_id) IN

                           (SELECT entity_code,

                                   entity_type,

                                   MAX(entity_id)

                            FROM   ods_entity_info_full_lhr_01

                            GROUP  BY entity_code,

                                      entity_type));

    2.3  删除完全重复记录

    对于表中两行记录完全一样的情况,可以用下面三种方式获取到去掉重复数据后的记录:

    1. select distinct * from 表名;

    2. select * from 表名 group by 列名1,列名2,... having count(*)>1

    3. select * from  表名 a where rowid<(select max(rowid) from 表名 b where a.列名1=b.列名2 and ...)

    2.3.1  方法1

      DELETE FROM tmp_lhr t

      WHERE  t.rowid not in (SELECT MAX(ROWID)

                         FROM   tmp_lhr a

                         GROUP  BY a.accesscode,

                                   a.lastserviceordercode,

                                   a.serviceinstancecode);

    2.3.2  方法2

    可以将查询的记录放到临时表中,然后再将原来的表记录删除,最后将临时表的数据导回原来的表中。如下:

    CREATE TABLE 临时表 AS (select distinct * from 表名);

    truncate table 正式表;

    insert into 正式表 (select * from 临时表);

    drop table 临时表;

     

    2.3.3  方法3

    DELETE FROM xr_maintainsite E

    WHERE  E.ROWID > (SELECT MIN(X.ROWID)

                      FROM   xr_maintainsite X

                      WHERE  X.Maintainid = E.Maintainid

                      AND    x.siteid = e.siteid);--这里被更新表中所有字段都需要写全

     

    2.4  采用row_number分析函数取出重复的记录然后删除序号大于1的记录

    给出一个例子:

    delete from aa where rowid in(select rid from(select rowid rid,row_number() over (partition by name order by id) as seq from aa) where seq>1);

    3  测试案例

    SYS@raclhr1> CREATE TABLE T_ROWS_LHR_20160809 AS SELECT * FROM SCOTT.EMP;

    Table created.

    SYS@raclhr1> INSERT INTO T_ROWS_LHR_20160809 SELECT * FROM T_ROWS_LHR_20160809;

    14 rows created.

    SYS@raclhr1> COMMIT;

    Commit complete.

    SYS@raclhr1> INSERT INTO T_ROWS_LHR_20160809 SELECT * FROM T_ROWS_LHR_20160809;

    28 rows created.

    SYS@raclhr1> COMMIT;

    Commit complete.

    SYS@raclhr1> SELECT COUNT(1) FROM T_ROWS_LHR_20160809;

      COUNT(1)

    ----------

            56

    SYS@raclhr1> DELETE FROM T_ROWS_LHR_20160809

      2      WHERE ROWID NOT IN  (SELECT MAX(ROWID)

      3                        FROM T_ROWS_LHR_20160809 D

      4                       group by D.EMPNO,D.ENAME,D.JOB,D.MGR,D.DEPTNO);

    42 rows deleted.

    SYS@raclhr1> SELECT COUNT(1) FROM T_ROWS_LHR_20160809;

      COUNT(1)

    ----------

            14

    SYS@raclhr1> COMMIT;

    Commit complete.

     

    4   经验总结

    重复数据删除技术可以提供更大的备份容量,实现更长时间的数据保留,还能实现备份数据的持续验证,提高数据恢复服务水平,方便实现数据容灾等。Oracle数据库重复数据删除技术有如下优势:更大的备份容量、数据能得到持续验证、有更高的数据恢复服务水平、方便实现备份数据的容灾。

    通过摸索,相信你能发现更多更高效删除Oracle重复数据的方法。

    展开全文
  • oracle 删除表中重复记录

    千次阅读 2016-06-30 14:11:40
    oracle 删除表中重复记录
          在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来很多的不便,那么怎么删除这些重复没有用的数据呢?

      重复数据删除技术可以提供更大的备份容量,实现更长时间的数据保留,还能实现备份数据的持续验证,提高数据恢复服务水平,方便实现数据容灾等。 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。Oracle数据库重复数据删除技术有如下优势:更大的备份容量、数据能得到持续验证、有更高的数据恢复服务水平、方便实现备份数据的容灾。



    1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断
     
    select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)

     
    2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
     
    DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);

     
    3、查找表中多余的重复记录(多个字段)
     
    select * from 表 a where (a.Id,a.seq) in(select Id,seq from 表 group by Id,seq having count(*) > 1)

     
    4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
     
    delete from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)

     
    5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
     
    select * from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)



     一、删除部分字段重复数据

      先来谈谈如何查询重复的数据吧。

      下面语句可以查询出那些数据是重复的:

      

        select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1

      将上面的>号改为=号就可以查询出没有重复的数据了。

      想要删除这些重复的数据,可以使用下面语句进行删除

      

        delete from 表名 a where 字段1,字段2 in
    
      (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)

      上面的语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。所以我建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。如下:

      CREATE TABLE 临时表 AS
    
      (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)


      上面这句话就是建立了临时表,并将查询到的数据插入其中。

      下面就可以进行这样的删除操作了:

      delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);


      这种先建临时表再进行删除的操作要比直接用一条语句进行删除要高效得多。

      这个时候,大家可能会跳出来说,什么?你叫我们执行这种语句,那不是把所有重复的全都删除吗?而我们想保留重复数据中最新的一条记录啊!大家不要急,下面我就讲一下如何进行这种操作。

      在oracle中,有个隐藏了自动rowid,里面给每条记录一个唯一的rowid,我们如果想保留最新的一条记录,

      我们就可以利用这个字段,保留重复数据中rowid最大的一条记录就可以了。
     下面是查询重复数据的一个例子:

      select a.rowid,a.* from 表名 a
      where a.rowid !=
      (
      select max(b.rowid) from 表名 b
      where a.字段1 = b.字段1 and
      a.字段2 = b.字段2
      )
    


      下面我就来讲解一下,上面括号中的语句是查询出重复数据中rowid最大的一条记录。

      而外面就是查询出除了rowid最大之外的其他重复的数据了。

      由此,我们要删除重复数据,只保留最新的一条数据,就可以这样写了:

      delete from 表名 a
      where a.rowid !=
      (
      select max(b.rowid) from 表名 b
      where a.字段1 = b.字段1 and
      a.字段2 = b.字段2
      )
    

      随便说一下,上面语句的执行效率是很低的,可以考虑建立临时表,将需要判断重复的字段、rowid插入临时表中,然后删除的时候在进行比较。

      create table 临时表 as
      select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;
      delete from 表名 a
      where a.rowid !=
      (
      select b.dataid from 临时表 b
      where a.字段1 = b.字段1 and
      a.字段2 = b.字段2
      );
      commit; 


    二、完全删除重复记录

      对于表中两行记录完全一样的情况,可以用下面语句获取到去掉重复数据后的记录:

      

        select distinct * from 表名

      可以将查询的记录放到临时表中,然后再将原来的表记录删除,最后将临时表的数据导回原来的表中。如下:

      CREATE TABLE 临时表 AS (select distinct * from 表名);
    
      truncate table 正式表; --注:原先由于笔误写成了drop table 正式表;,现在已经改正过来
    
      insert into 正式表 (select * from 临时表);
    
      drop table 临时表;


      如果想删除一个表的重复数据,可以先建一个临时表,将去掉重复数据后的数据导入到临时表,然后在从

      临时表将数据导入正式表中,如下:

      INSERT INTO t_table_bak select distinct * from t_table;


     三、怎样快速删除oracle数据库

      最快的方法就进入注册表 在运行..里输入regedit.

      依次展开HKEY_LOCAL_MACHINE SOFTWARE

      找到ORACLE节点。删除。

      然后删除ORACLE数据文件,安装的时候选的路径。

      最后删除oracle引导文件,在系统盘符的Program Files 里面删除oracle文件夹。



    展开全文
  • 完全删除ORACLE的方法

    2009-11-22 23:46:00
    一个快速完全删除Oracle的好方法,一个快速完全删除Oracle的好方法。。。
  • Oracle恢复被删除表&彻底删除表方式

    千次阅读 2018-08-02 16:53:00
    概述: 工作过程中,会出现误删的情况,这时,可以通过flashback的方式恢复...如果想要完全删除,在最后增加purge即可。 drop table CELL_SIGN_PD_LIST_ZQ purge; 接下来,我们通过实验的方式进行验证理解...
  • 完全删除oracle数据库

    2008-07-25 17:16:17
    有时候重装oracle经常出现报错无法安装的现象,问题解决方法还是有的,看能不能带给你方便了
  • 很多人只用了Oracle的删除,但很多情况下,会发现重新安装时,点了下一步安装界面就消失了,往往无奈下只好重装系统,其实只是你数据库没删干净,删干净就不会出现这种情况了...本文介绍了完全删除Oracle数据库的方法。
  • Oracle删除表中重复数据有多种方法,网上较多的一种如下: delete from gljyjl jl where (jl.djbbh,jl.bgsbh) in (select djbbh,bgsbh from gljyjl group by djbbh,bgsbh having count(*) > 1) and rowid not in ...
  • oracle创建删除表空间和用户授权

    千次阅读 2011-08-08 13:30:50
    oracle创建空间和用户授权 SYS用户在CMD下以DBA身份登录: 在CMD中打sqlplus/nolog //匿名登录 然后再conn/as sysdba //以dba身份登录 //创建临时空间 create temporary tablespace
  • oracle 如何完全删除干净

    千次阅读 2017-10-03 21:56:00
    在安装oracle的时候如果出现了,指定的SID在本机上已经存在。这样的报错的话。这边你肯定是第二次在安装你的oracle了,这里出现这样的错误是你没有吧原先的那些关于oracle的东西给清理干净,这里我们先再次的对你的...
  • oracle10g完全卸载及删除垃圾

    千次阅读 2015-11-03 10:33:47
    oracle10g完全卸载及删除垃圾 卸载步骤:   1、Windows + R 打开“运行”窗口输入命令“services.msc”     2、停止与oracle相关的四个服务(如果事先将四个服务设为手的而且没有启动的话,此步可以...
  • Oracle疑难:session无法完全删除问题
  • oracle删除

    2012-11-24 14:36:58
    完全删除oracle的步骤及需要注意的问题
  • 在本篇文章中我们给大家分享一篇关于navicat怎么删除oracle表的相关内容,有需要的朋友们跟着学习下。
  • oracle 删除临时: 1、先
  • 完全卸载删除oracle9i

    千次阅读 2018-06-11 13:16:56
    Windows 2003+Oracle92安装位置:E:\oracle 1、开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。2、开始->程序->...删除注册表信息开始-&gt;运行-&gt;regeditHKEY_LOCAL_MACHI...
  • linux下完全删除Oracle

    千次阅读 2013-03-07 21:20:15
    oracle用户登录如果要再次安装, 最好先做一些备份工作。包括用户的登录脚本,数据库自动启动关闭的脚本,和Listener自动启动的脚本。要是有可能连创建数据库的脚本也保存下来2.使用SQL*PLUS停止数据库[oracle@ora...
  • oracle 完全卸载

    2013-09-08 18:43:42
    完全卸载oracle11g步骤: 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 102,752
精华内容 41,100
关键字:

oracle完全删除表