当前位置:首页 » 数据仓库 » oracle批量删除表数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle批量删除表数据库

发布时间: 2022-05-08 07:12:31

‘壹’ oracle删除数据库里大量表中的重复数据

1、建议你删除了,重新导,推荐。

2、非要删除的话,也是可以,不过你的表有点多,得考虑好删除后,表的数据关联可能会出问题
3、删除重复的语句,你可以网络一下,或者到我们海枫科技社区中提问一下,用group by 的方式或者ID的方式。网上应该比较多。
4、因为是100多张,你手动写容易出错,工作量也大,建议写个小程序或者sql直接输出语句来生成对应的3中说的SQL
5、执行。。
海枫科技

‘贰’ 怎么批量的删除数据库中的表中的数据

这个问题你可能通过查询oracle的系统表,例如all_all_tables,用这些对象的列表生成一批数据库删除对象的语句,然后将这些语句存到文件,用sqlplus的文件参数执行这一批语句。

‘叁’ 怎么删除oracle表中的全部数据

怎么删除oracle表中的全部数据
删除表内容的两种方法
truncate table 表名;
delete from 表名 where 条件;
两种方法的区别:
truncate,意思为截断表,能够不占用资源的全部删除表,优点是速度快,缺点是删除不能恢复,不能按条件删除。
delete,意思为删除,此操作占用redolog,优点能够快速恢复和选择删除,缺点是删除慢,大批量的删除不建议使用。

‘肆’ oracle上亿表海量数据进行大批量数据删除有什么好的解决方案

以下纯属个人意见,请根据实际情况判断
(1)省下的数据量如果不大,那么可以考虑建立一张临时表,将需要保留的数据临时灌过去,然后truncate该表,然后再把数据灌回来。也可以考虑drop表,然后另外一张表改名,不过这样可能会有很多的后续操作,比如索引的建立等等,因此一般不用drop操作。
(2)上亿的数据,应该有分区吧,如果可能的话,按照分区truncate,这样也可以。
(3)实在不能truncate,只能delete那么建议找个字段循环删除提交,每次不能太多,最好保持在5万以下(根据实际情况具体判断),毕竟delete是最消耗资源的dml语句。
(4)如果可能的话,不要同一时间操作,分批操作,这样能减少一部分数据库负载压力(特别是undo)。
(5)一定要闲时操作,因为delete消耗资源比较多,会使数据库变慢。

‘伍’ oracle中,需删除几百张表里面的部分数据,求语句。

select 'delete ' || table_name || ' where A not like '''%密%''' || '/' from user_tables order by table_name
用这个能批量生成oracle 里所有表,且字段为A not like '%密%' 的执行语句
自己挑选哪些表需要执行的。或者oracle 里执行,选择有错跳过,执行下一选项。
我知道 si objectbrowser有这功能,并不知道你用的什么工具。

‘陆’ Oracle如何批量清空所有表数据

一个游标加一个 execute immediate 就可以具体我给你写出来吧
--@author WFQ
declare
v_sql varchar2(2000) ;
CURSOR cur is select table_name from user_tables order by table_name ;
begin
for rows in cur
loop
v_sql := 'TRUNCATE TABLE ' || rows.table_name ;
dbms_output.put_line(v_sql);
execute immediate v_sql ;
end loop;
end;
/

‘柒’ oracle如何快速删除表中大量数据

如果是整表删除且不考虑恢复,直接用truncate table 表名,如果是删除大部分数据,那么新建一个相同结构的表,插入保留的数据,将新表与原表互换表名即可。

‘捌’ oracle中如何删除所有表

1、如果想要删除相应的表格,那么首先要知道表格位于那个数据库,这样才可以进行删除。

‘玖’ oracle怎样批量删除和修改

下面一段示例说明了oracle的基本操作insert、update、delete产生的undo的大小和记录条数。
--insert操作无论是1条或者多条,一次产生一条undo数据
SQL> create table a (b number, c varchar2(30));
Table created
SQL> insert into a values (1,'zhangsan');
1 row inserted
SQL>
SQL> select used_ublk,used_urec from v$session s, v$transaction t
2 where s.audsid=sys_context('userenv', 'sessionid') and s.taddr = t.addr;
USED_UBLK USED_UREC
---------- ----------
1 1
SQL> insert into a select rownum,rownum from al connect by rownum<=50;
50 rows inserted
SQL>
SQL> select used_ublk,used_urec from v$session s, v$transaction t
2 where s.audsid=sys_context('userenv', 'sessionid') and s.taddr = t.addr;
USED_UBLK USED_UREC
---------- ----------
1 2
--delete操作产生的undo条数取决于delete操作本身影响的记录数SQL> delete from a;
51 rows deleted
SQL>
SQL> select used_ublk,used_urec from v$session s, v$transaction t
2 where s.audsid=sys_context('userenv', 'sessionid') and s.taddr = t.addr;
USED_UBLK USED_UREC
---------- ----------
1 53
SQL> insert into a select rownum,rownum from al connect by rownum<=50;
50 rows inserted
SQL>
SQL> select used_ublk,used_urec from v$session s, v$transaction t
2 where s.audsid=sys_context('userenv', 'sessionid') and s.taddr = t.addr;
USED_UBLK USED_UREC
---------- ----------
1 54
--update操作产生的undo条数取决于被update的数据的原值和新值存在差异的记录数量
SQL> update a set c=rownum;
50 rows updated
SQL>
SQL> select used_ublk,used_urec from v$session s, v$transaction t
2 where s.audsid=sys_context('userenv', 'sessionid') and s.taddr = t.addr;
USED_UBLK USED_UREC
---------- ----------
2 57
SQL> update a set c=rownum+1000;
50 rows updated
SQL>
SQL> select used_ublk,used_urec from v$session s, v$transaction t
2 where s.audsid=sys_context('userenv', 'sessionid') and s.taddr = t.addr;
USED_UBLK USED_UREC