oracle怎么删除一个表中的数据一.delete语句
(1)有条件删除
语法格式:delete [from]table_name[where condition];
如:删除users表中的userid为‘001’的数据:delete from users where userid='001';
(2)无条件删除整个表数据
语法格式:deletetable_name;
如:删除user表中的所有数据:delete users ;
二、Truncate语句
使用Truncate语句是删除表中的所有记录 。
语法格式: Truncate [table]table_name;
(1)删除所有记录不保留记录占用空间
Truncate [table]table_name[drop storage];
如:删除users表中的所有数据并不保存占用空间: Truncate table users drop storage; 由于默认使用drop storage关键字,所以可以省略 drop storage;
(2)删除所有记录保留记录占用空间
Truncate [table]table_name[reuse storage];
如:删除users表中的所有数据并保存占用空间: Truncate table users reuse storage;
oracle怎么删除日记账具体操作如下:
1、定位至“删除日记帐导入数据”窗口 。
2、通过输入已导入数据的日记帐分录来源,标识要从总帐管理系统导入表删除的数据 。
3、输入与“日记帐导入”运行一致的请求标识 。
4、输入组标识以删除与指定来源和组标识一致的所有“日记帐导入”数据 。
对“组标识”留空以删除所有与指定来源一致但没有对应“组标识”的“日记帐导入”数据 。
5、选择“删除”提交并发流程以删除错误“日记帐导入”数据 。
教你删除Oracle数据库中重复没用的数据 在对数据库进行操作过程中我们可能会碰到这种情况 表中的数据可能重复出现 使我们对数据库的操作过程中带来很多的不便 那么怎么删除这些重复没有用的数据呢?
重复数据删除技术可以提供更大的备份容量 实现更长时间的数据保留 还能实现备份数据的持续验证 进步数据恢复服务水平 方便实现数据容灾等 重复的数据可能有这样两种情况 第一种时表中只有某些字段一样 第二种是两行记录完全一样 Oracle数据库重复数据删除技术有如下优势 更大的备份容量 数据能得到持续验证 有更高的数据恢复服务水平 方便实现备份数据的容灾
一 删除部分字段重复数据
先来谈谈如何查询重复的数据吧
下面语句可以查询出那些数据是重复的
select 字段 字段 count(*) from 表名 group by 字段 字段 having count(*)
将上面的号改为=号就可以查询出没有重复的数据了
想要删除这些重复的数据 可以使用下面语句进行删除
delete from 表名 a where 字段 字段 in
(select 字段 字段 count(*) from 表名 group by 字段 字段 having count(*))
上面的语句非常简单 就是将查询到的数据删除掉 不过这种删除执行的效率非常低 对于大数据量来说 可能会将数据库吊死 所以我建议先将查询到的重复的数据插入到一个暂时表中 然后对进行删除 这样 执行删除的时候就不用再进行一次查询了 如下
create TABLE 暂时表 AS
(select 字段 字段 count(*) from 表名 group by 字段 字段 having count(*))
上面这句话就是建立了暂时表 并将查询到的数据插入其中
下面就可以进行这样的删除操作了
delete from 表名 a where 字段 字段 in (select 字段 字段 from 暂时表);
这种先建暂时表再进行删除的操作要比直接用一条语句进行删除要高效得多
这个时候 大家可能会跳出来说 什么?你叫我们执行这种语句 那不是把所有重复的全都删除吗?而我们想保留重复数据中最新的一条记录啊!大家不要急 下面我就讲一下如何进行这种操作
在oracle中 有个隐藏了自动rowid 里面给每条记录一个唯一的rowid 我们假如想保留最新的一条记录
我们就可以利用这个字段 保留重复数据中rowid最大的一条记录就可以了
下面是查询重复数据的一个例子
以下是引用片段 selecta rowid a *from表名a wherea rowid!= ( selectmax(b rowid)from表名b wherea 字段 =b 字段 and a 字段 =b 字段)
下面我就来讲解一下 上面括号中的语句是查询出重复数据中rowid最大的一条记录
而外面就是查询出除了rowid最大之外的其他重复的数据了
由此 我们要删除重复数据 只保留最新的一条数据 就可以这样写了
deletefrom表名a wherea rowid!= ( selectmax(b rowid)from表名b wherea 字段 =b 字段 and a 字段 =b 字段)
随便说一下 上面语句的执行效率是很低的 可以考虑建立暂时表 讲需要判定重复的字段 rowid插入暂时表中 然后删除的时候在进行比较
createtable暂时表as selecta 字段 a 字段 MAX(a ROWID)dataidfrom正式表aGROUPBYa 字段 a 字段 ; deletefrom表名a wherea rowid!= ( selectb dataidfrom暂时表b wherea 字段 =b 字段 and a 字段 =b 字段); mit;
二 完全删除重复记录
对于表中两行记录完全一样的情况 可以用下面语句获取到去掉重复数据后的记录
select distinct * from 表名
可以将查询的记录放到暂时表中 然后再将原来的表记录删除 最初将暂时表的数据导回原来的表中 如下
createTABLE暂时表AS(selectdistinct*from表名);truncatetable正式表; 注 原先由于笔误写成了droptable正式表; 现在已经改正过来insertinto正式表(select*from暂时表);droptable暂时表;
假如想删除一个表的重复数据 可以先建一个暂时表 将去掉重复数据后的数据导入到暂时表 然后在从暂时表将数据导入正式表中 如下
insertINTOt_table_bak selectdistinct*fromt_table;
三 怎样快速删除oracle数据库
最快的方法就进入注册表 在运行 里输入regedit
依次展开HKEY_LOCAL_MACHINE SOFARE
找到ORACLE节点 删除
然后删除ORACLE数据文件 安装的时候选的路径
lishixinzhi/Article/program/Oracle/201311/18677
用友NC 5.011如何在ORACLE数据库中删除已作废凭证其实很简单的,在软件界面上就可以执行的,点击删除凭证就可以了,不建议到数据库里操作,这样麻烦而且风险很大,凭证主表是gl_voucher,子表是gl_detail 。
ORACLE 如何删除一张表的记录 。那就是这个表里面有外键约束 , 子表数据依赖于要item表中要删除的数据 。
两种方法 。
一种是先删除子表的相关数据 。(如果不需要的话)
另外一种是将约束置为disable 。(如果子表的数据不想删除)
怎么删除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@ORCLselect file_id,file_name,tablespace_name from dba_data_files
2where tablespace_name='USERS';
FILE_IDFILE_NAMETABLESPACE_NAME
---------------------------------------------------------------------
4/u01/app/oracle/oradata/orcl/users01.dbfUSERS
sys@ORCLalter tablespace users add datafile
2'/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off;
Tablespace altered.
sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files
2where tablespace_name='USERS';
FILE_IDFILE_NAMETABLESPACE_NAME
----------------------------------------------------------------------
4/u01/app/oracle/oradata/orcl/users01.dbfUSERS
9/u01/app/oracle/oradata/orcl/users02.dbfUSERS
sys@ORCLdrop table test;
Table dropped.
sys@ORCLcreate table test tablespace users
2as
3select * from dba_objects;
Table created.
sys@ORCLselect SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents
2where file_id=9;
SEGMENT_NAMEFILE_IDBLOCKS
--------------------------------------------------
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST98
TEST9128
TEST9128
17 rows selected.
sys@ORCLalter table test move tablespace PERFSTAT; --把表移动到其它表空间
Table altered.
sys@ORCLselect SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents
2where file_id=9;
no rows selected
sys@ORCLalter tablespace users drop datafile
2'/u01/app/oracle/oradata/orcl/users02.dbf';
Tablespace altered.
sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files
2where tablespace_name='USERS';
FILE_IDFILE_NAMETABLESPACE_NAME
------------------------------------------------------------------------
4/u01/app/oracle/oradata/orcl/users01.dbfUSERS
三、oracle 10g可以删除临时表空间的文件
alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;
【oracle怎么删除凭证 oracle 删除】关于oracle怎么删除凭证和oracle 删除的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- linux语句命令,linux常用的20个命令语法实例
- redis哨兵模式配置带密码,redis 哨兵模式
- 给你一个公司看你怎么管pdf,给你一个公司,你能赚钱吗书籍
- 硬盘图片怎么保存手机上,硬盘里面的照片怎么导出来
- linux自定义命令参数 linux 自定义命令
- 影片用什么拍摄,影片拍摄计划
- terraria服务器,terraria服务器搭建
- 恋爱优游戏网,恋爱 游戏网
- vb.net按键触发 vbnet button