oracle中如何删除第十条及以后的所有记录

没有id列,
我用delete from table where rownum>10,但是不行。
不行。。。。

oracle每条记录都有一个唯一的物理记录rowid,可以通过rowid作为唯一主键进行删除。

1、首先根据rownum编号

SELECT ROWID,ROWNUM RN FROM 表

2、筛选rn>=10的记录的rowid

SELECT ROWID FROM (SELECT ROWID,ROWNUM RN FROM 表) WHERE RN>=10

3、根据rowid删除第十条以及以后的记录

DELETE FROM 表 where rowid in(SELECT ROWID FROM (SELECT ROWID,ROWNUM RN FROM 表) WHERE RN>=10)

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-13
试试:
delete 表名 where rowid not in (select * from (select rowid from 表名 order by dbms_random.random) where rownum<10);
第2个回答  2010-08-13
delete from tb_name where rowid not in (select rowid from tb_name where rownum<10)本回答被提问者采纳
第3个回答  2010-08-13
delete from table b where b.rowid in(
select a.rowid
from
(select rowid,排序字段,rownum
from table
where rownum >=10
order by 排序字段)a)
第4个回答  2015-09-11
DELETE FROM TABLE
WHERE ROWNUM>10

Oracle中如何删除一条记录?
1、首先我们打开Oracle,我们在连接数据库的登录框中左侧选中要删除的历史数据库连接记录。2、我们在键盘上按delete键,在弹出的删除确认对话框中点击“OK”,确认删除不需要的历史数据库连接记录。3、然后我们就可以看到所选择的不需要的历史数据库连接记录已被删除掉。

oracle 数据库 ,怎么删除有效期字段里超出某个日期的所有数据?
如果这个日期是String类型的且是到某个日的(如果是到秒数,你自己类推过去)可以写:(date指的是你题目中的某个日期)delete from PUB_LOT l where substr( i.validitydate, 1, 10) <= date 如:delete from PUB_LOT l where substr( i.validitydate, 1, 10) <= '2019-01-11'如果这个日...

在Oracle10g中如何删除归档日志
1. 不要直接使用操作系统(OS)命令删除归档日志。这是因为Oracle数据库会记录归档日志的信息在控制文件中,而OS级别的删除操作不会改变这些记录。这可能导致数据库认为归档日志仍然存在,从而引发问题。2. 使用RMAN(Recovery Manager)来删除归档日志。RMAN是Oracle数据库用于备份、还原和恢复的工具,它提供...

如何删除oracle的归档日志
进入ORACLE数据备份工具 rman target\/ 或rman target\/@orcl 在命令窗口里面执行 DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';说明 SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。同样道理,也可以删除从7天前到现在的全部日志...

oracle数据库,如何删除指定用户名下的所有数据?
连接到system用户,把用户test删除之后重建 conn \/ as sysdba drop user test cascade;create user test identified by password;conn user\/password

oracle中如何删除所有表
1、如果想要删除相应的表格,那么首先要知道表格位于那个数据库,这样才可以进行删除。2、然后需要打开数据库,你会看到数据库内有很多表格。3、往下拉,我们自己新建的表格一般都是位于最末端,找到表格右击。4、右击选择“表”你会看到侧边栏会弹出“删除”点击他。5、这时会提示你是否删除表格,如果想要...

在Oracle10g中如何删除归档日志
可以使用下面的几种方法:可以使用RMAN来删除archivelog,具体可以按以下步骤操作:1、使用OS级命令物理删除archivelog2、进入RMAN3、crosscheck archivelog all;4、delete expried archivelog all;这样就在一些Oracle的记录中查不到相应的archivelog记录了。二、直接使用RMAN删除archivelog其实在RMAN中是可以使用...

oracle中有主外键关系的数据如何删除
ORACLE 数据库支持级联删除,但要看你的约束是怎么建的 1.ON DELETE CASCADE (级联删除)2.ON DELETE SET NULL (删除主表,子表列设置NULL)没有设置上面两种方式,缺省是不允许删除,必须遵循下面的方式 删除主表的记录时,你必先删除子表的记录才能够删主表的记录 删除子表的记录时,你可以直接...

oracle中两条记录完全相同,如何删除其中一条【谢谢】
根据rowid删除。1、先根据条件select选出相同的记录;2、然后 select rowid from tablename where 第一步中的条件;3、delete from tablename where rowid=你要删除的记录的rowid;

如何删除Oracle数据库中的某一用户名下全部的表
1. 打开sqlplus,并用相应的用户连接。2. 把pagesize设大点,如set pagesize 20000 3. 用spool把相应的结果导到文件时,如 SQL> spool \/home\/oracle\/constraint.sql SQL> SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' || constraint_name || ';' FROM user_constraints ...

相似回答