精华内容
下载资源
问答
  • Oracle 数据库删除某一行数据

    千次阅读 2020-12-08 11:29:15
    SQL 代码: delete from table_name where ... from 后面接表名 where 后面接要删除的那行数据的字段特征。 注意字段要能保证能唯一删除这一条。

    SQL 代码:

    delete from table_name
    where ...

    from 后面接表名

    where 后面接要删除的那行数据的字段特征。

    注意字段要能保证能唯一删除这一条。

    展开全文
  • Oracle删除数据文件

    万次阅读 2018-08-10 17:43:07
    在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表、视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。 一、使用offline数据文件的方法 非归档模式
    原文地址为:
    Oracle删除数据文件
    

    在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表、视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。

     

    一、使用offline数据文件的方法

    非归档模式使用:alter database datafile '...' offline drop;

    归档模式使用:  alter database datafile '...' offline;

    说明:

    1)         以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。该数据文件的信息在控制文件种仍存在。查询v$datafile,仍显示该文件。

    2)         归档模式下offline和offline drop效果是一样的

    3)         offline后,存在此datafile上的对象将不能访问

    4)         noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover后进行online操作

     

    实际使用案例:

    直接删除数据文件后无法进入系统的解决方案

     

    正常情况下,删除表空间的正确方法为:

    DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

     

    如果没有通过以上命令删除而直接删除了数据文件,将导致数据库无法打开。

     

    如果直接删除了数据文件

    普通用户登录时,则报错:

    ORA-01033: ORACLE initialization or shutdown in progress

    sys用户可以正常登录

    但进行操作时(SELECT count(1) FROM user_tables),则会报错:

    ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询

    如果执行命令alter database open以打开数据库时,又报如下错:

    ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件

    ORA-01110: 数据文件 12: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF'

     

    说明数据库没找到这个数据文件

    因为数据文件在没有被offline的情况下物理删除了,导致oracle的数据不一致,因此启动失败.

    通过以下方法即可解决

     

    解决方法:

    sqlplus sys/orcl@orcl as sysdba;

    SQL> alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF' offline drop;

    SQL> alter database open;

    SQL> drop tablespace CTBASEDATA;

     

    二、Oracle 10G R2开始,可以采用:Alter tablespace tablespace_name drop datafile file_name;来删除一个空数据文件,并且相应的数据字典信息也会清除:

     

    sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files

      2  where tablespace_name='USERS';

    FILE_ID  FILE_NAME                        TABLESPACE_NAME

    -------    --------------------------------------------       ------------------

    4        /u01/app/oracle/oradata/orcl/users01.dbf    USERS

     

    sys@ORCL>alter tablespace users add datafile

      2  '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off;

    Tablespace altered.

    sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files

      2  where tablespace_name='USERS';

    FILE_ID  FILE_NAME                          TABLESPACE_NAME

    -------    --------------------------------------------        -------------------

    4        /u01/app/oracle/oradata/orcl/users01.dbf     USERS

    9        /u01/app/oracle/oradata/orcl/users02.dbf     USERS

     

    sys@ORCL>drop table test;

    Table dropped.

    sys@ORCL>create table test tablespace users

      2  as

      3  select * from dba_objects;

    Table created.

    sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents

      2  where file_id=9;

    SEGMENT_NAME                      FILE_ID     BLOCKS

    ------------------------------                  ----------      ----------

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9          8

    TEST                                    9        128

    TEST                                    9        128

     

    17 rows selected.

    sys@ORCL>alter table test move tablespace PERFSTAT; --把表移动到其它表空间

    Table altered.

    sys@ORCL>select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents

      2  where file_id=9;

    no rows selected

    sys@ORCL>alter tablespace users drop datafile

      2  '/u01/app/oracle/oradata/orcl/users02.dbf';

    Tablespace altered.

    sys@ORCL>select file_id,file_name,tablespace_name from dba_data_files

      2  where tablespace_name='USERS';

    FILE_ID  FILE_NAME                       TABLESPACE_NAME

    -------    --------------------------------------------      ---------------------

    4        /u01/app/oracle/oradata/orcl/users01.dbf   USERS

     

    三、oracle 10g可以删除临时表空间的文件

    alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;

     

    ALTER DATABASE 与 ALTER TABLESPACE OFFLINE的区别

    一.DataFile脱机或联机的两种方法:

    ① ALTER DATABASE 语句修改单独的DataFile

    ② ALTER TABLESPACE 语句修改所有的DataFile

    1、在ARCHIVRLOG模式下的更改DataFile状态

    ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;

    ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;

    或者用文件号来表示 :

    ALTER DATABASE DATAFILE 5 ONLINE;

    ALTER DATABASE DATAFILE 5 OFFLINE;

    注:只有在ARCHIVELOG模式下才可使用ALTER DATABASE来更改DataFile

     

    2、在NOARCHIVELOG模式下使DataFile脱机

    由于在NOARCHIVELOG模式下,数据文件脱机后会造成数据的遗失,所以只能使用ALTER DATABASE语句下带有DATAFILE和OFFLINE DROP子句的选项将该DataFile直接取消,例如该DataFile只包含临时段数据,并没有备份时

     

    ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/users3.dbf' OFFLINE DROP;

    3、修改TableSpace中所有DataFile或TempFile的可用性

    ALTER TABLESPACE ... DATAFILE {ONLINE|OFFLINE}

    ALTER TABLESPACE ... TEMPFILE {ONLINE|OFFLINE}

     

    注:修改某TableSpace中的所有数据文件,但是TableSpace本身的状态不改变。

    总结:

    ① ALTER TABLESPACE可以在数据库装载状态时发布,无需打开

    ② 涉及到系统表空间、撤销表空间、默认临时表空间时,必须是未打开的数据库

    ③ ALTER DATABASE DATAFILE 语句中必须填入文件全名

     

    二. 表空间 与 数据文件 脱机的区别

    1. ALTER TABLESPACE ... OFFLINE

    Does a checkpoint on the datafiles

    Takes the datafiles offline

    表空间Offline时,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生文件检查点,使单个数据文件SCN和数据库其他问题不一致。

    表空间online时,Oracle会取得当前SCN,解冻offline文件SCN,和当前SCN同步。

    tablespace offline有几种选项可供选择normal, temporary,immediate, for recovery,而在datafile中则没有这些选项。

     

    2.  ALTER DATABASE DATAFILE ... OFFLINE

    单纯的offline datafile,将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recovery而online tablespace不需要。

    注:只有在ARCHIVELOG模式下才可使用ALTER DATABASE来更改DataFile


    转载请注明本文地址: Oracle删除数据文件
    展开全文
  • oracle删除数据

    万次阅读 2018-05-13 10:40:58
    truncate table 表名; delete from 表名 where 条件;... delete,意思为删除,此操作占用redolog,优点能够快速恢复和选择删除,缺点是删除慢,大批量的删除不建议使用。 删除该用户下所有表...
    1. truncate table 表名;

    2. delete from 表名 where 条件;

    • 两种方法的区别:

    1. truncate,意思为截断表,能够不占用资源的全部删除表,优点是速度快,缺点是删除不能恢复,不能按条件删除。

    2. delete,意思为删除,此操作占用redolog,优点能够快速恢复和选择删除,缺点是删除慢,大批量的删除不建议使用。

    删除该用户下所有表数据:

    select 'delete from ' || a.table_name || ';' from user_tables a;

    select 'truncate table ' || a.table_name || ';' from user_tables a;

    两种方式

    将数据考出执行

    <update id="truncateTable">
            truncate table tableName
        </update>
    <delete id="delImageTemp" parameterType="hashmap">
    delete from tableName a where a.id = {ID}
    </delete

    借鉴:https://zhidao.baidu.com/question/292516789.html

    展开全文
  • oracle删除时间数据

    千次阅读 2019-04-26 11:01:15
    DELETE FROM "TABLEA" WHERE CREATE_TIME=to_date('2019-04-26 10:22:11','yyyy-mm-dd hh24:mi:ss')
    DELETE FROM "TABLEA" WHERE CREATE_TIME=to_date('2019-04-26 10:22:11','yyyy-mm-dd hh24:mi:ss')

     

    展开全文
  • oracle删除数据文件

    千次阅读 2019-05-05 11:37:49
    alter tablespace 表空间名 drop datafile '数据文件路径'; 如果要删除临时文件,可以使用如下命令 alter tablespace 临时表空间名 drop tempfile '临时文件位置'; 也可以使用如下命令删除临时文件 alter database...
  • 由于对于truncate命令没有回滚方法来还原,因此就需要对数据库进行恢复操作以将数据恢复回表中。 本文中将给出truncate命令后的恢复思路及步骤: RECOVER DATABASE UNTIL TIME 恢复步骤方案 注意: 在开始使用旧...
  • oracle 删除数据

    千次阅读 多人点赞 2015-01-04 09:40:04
    Oracle在表中删除数据的语法是: 语法结构: DELETE FROM表名 WHERE 条件 代码演示: SQL> DELETE FROM INFOS WHERE STUID='s100103'; 1 ROW DELETED SQL> COMMIT; TRUNCATE 在数据库操作中, ...
  • oracle 数据删除 数据恢复

    千次阅读 2017-12-07 17:46:33
    oracle删除数据的恢复方法 https://www.cnblogs.com/hqbhonker/p/3977200.html Oracle 表和表数据恢复 https://www.cnblogs.com/java-class/p/5817217.html oracle恢复删除的数据
  • oracle 删除重复数据方式

    千次阅读 2019-03-01 16:01:20
    Oracle 删除重复数据的几种方法 去重 第一种:distinct create table tmp_t3 as select distinct * from t3; drop table t3; alter table tmp_t2 rename to t3; -- 第二种,用rowid delete from t2 where rowid &...
  • oracle 删除数据

    千次阅读 2019-03-21 14:51:57
    各位朋友,我已开通微信公共号:小程在线 我会把文章及时的更新到公共号上,欢迎大家的关注。 alter table 表名 drop column 列名称;
  • oracle恢复删除数据

    千次阅读 2019-03-21 15:44:58
    *确定删除数据的时间(在删除数据之前的时间就,不过最好是删除数据的时间点) *用以下语句找出删除的数据:select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss') *把...
  • Oracle数据库删除数据

    千次阅读 2016-04-10 20:36:19
    1.Delete语句  语法:Delete From ... //删除tableName中所有数据  Delete From tableName Where ; //删除表中符合条件的所有数据 2.Truncate语句  语法:Truncate Table tableName; //清空表数据 Dele
  • Oracle数据库删除重复数据

    万次阅读 2018-09-04 00:01:49
    Oracle数据库中如何删除重复数据。 第一种情况:部分字段重复数据删除 先查询出那些数据是重复的: select 字段1 ,字段2 ,count(*) from 表名 group by 字段1 ,字段2 having count(*) &amp;gt...
  • Oracle 删除数据

    万次阅读 2019-03-26 10:24:15
    drop table 表名;
  •  这要删除 id 重复的,只保留最小的 sql 语句就是: delete from table_name t1 where rowid not in(  select min(rowid) from table_name t2 where t2.id is not null  having count(id) &gt;1 group .....
  • Oracle删除数据索引

    千次阅读 2020-08-19 17:06:06
    首先查到表中的现有索引: select * from user_indexes where table_name in ('表名',''); 删除索引: drop index 索引名;
  • oracle删除整张表数据

    千次阅读 2018-06-04 15:24:48
    ---保留表,只删除数据: truncate table mytable; delete from student where 1 = 1 ; ---删除表本身: drop table mytable; ---永久性删除 恢复不了: drop table mytable purge;
  • ORACLE删除表分区和数据

    千次阅读 2019-04-28 14:59:14
    – 删除分区,数据也自动删除 alter table 表名 DROP PARTITION 表中分区的名称; 删除表中分区和数据后,会造成索引失效,建议删除分区之后...– 只删除数据 alter table 表名 TRUNCATE PARTITION 表中分区的名称; ...
  • 我的Oracle10g数据库,有一张表里大概5000万的数据,我想删除其中的3000万数据,不知道如何删除可以高效一些,谢谢! 表里有一个索引是创建日期,还有一个索引是自增长的Sequence ID,不知该如何操作,望解答。
  • oracle数据库删除数据Delete语句和Truncate语句的使用比较作者:oracle当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍当表中的数据不...
  • Oracle删除重复数据的几种方式

    万次阅读 2019-04-23 10:29:14
    包含空字段的数据去重: DELETE FROM TABLE_NAME WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM TABLE_NAME GROUP BY COLUMN1,COLUMN2) 不包含空字段的数据去重: DELETE FROM TABLE_NAME T WHERE (T.COLUMN1,T....
  • oracle删除数据的两种的方式

    万次阅读 2018-09-07 08:45:44
    oracle中,truncate、delete都可以删除数据,具体的区别以及sql语法如下: truncate table [表名]; delete from [表名]; delete与truncate的区别: delete:会产生rollback,如果删除数据量的表速度会很慢...
  • Oracle 定时删除数据 并释放空间 ,创建存储过程并使用job完成。
  • Oracle 删除根据id 删除重复数据

    千次阅读 2017-04-05 15:31:43
    查询重复的数据 select * from t_creditobjection a where (a.id) in (select id from t_creditobjection group by id having count...删除重复的数据 delete from t_xzcf_delete where id in (select id fro...
  • 测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小。经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办法如下:...
  • oracle删除表中数据(delete与truncate)

    千次阅读 2020-11-09 09:37:12
    当表中的数据不需要时,则应该删除数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍。 一、delete语句 (1)有条件删除 语法格式: delete [from] table_name ...
  • oracle表空间删除数据文件未删除

    千次阅读 2018-01-29 08:30:04
    清理老旧数据的时候,不太熟悉操作,直接把表空间删了,未删除数据文件, HIS20170927此表空间已删除但数据文件还在,这时新创建一个表空间直接指定到这个数据文件上. create tablespace HIS20170927 datafile '/oracle/...
  • Oracle中批量删除数据

    千次阅读 2012-07-31 21:07:18
    在一个ORACLE数据库运行过程中,有时候会遇到要批量删除数据的情况,如一个保存历史数据的表中有大量的数据已经不需要保留,要将这部分数据删除。以下就这种情况可以采取的方法进行讨论。   1、使用TRUNCATE...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 290,831
精华内容 116,332
关键字:

oracle删除10行数据