我删除了表中的行,如何查找3天前在oracle中的行数
答案 0 :(得分:0)
3天前,运行:
Select count(*) from table;
或者希望您正在运行12c,并且为此表启用了全部召回功能。
答案 1 :(得分:0)
现在获取表中的行数,添加已删除的行数,然后减去自删除以来添加的行数。
如果幸运的话,您可能会在ALL_TAB_MODIFICATIONS中找到这些数字。如果自那时以来收集了统计信息,那么您将不太幸运。
答案 2 :(得分:0)
如果启用了闪回,请尝试
SELECT COUNT (*)
FROM your_table
AS OF TIMESTAMP TO_TIMESTAMP ('03.06.2019 08:00:00', 'dd.mm.yyyy hh24:mi:ss');
(为什么03.06.2019?今天是06.06.2019:“ 3天前”)
例如:我有一个包含一些行的表:
SQL> select count(*) from test;
COUNT(*)
----------
873
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
Session altered.
现在几点了?
SQL> select sysdate from dual;
SYSDATE
-------------------
06.06.2019 08:43:56
现在,删除一些行:
SQL> delete from test where evbr > 9000;
84 rows deleted.
表中当前的行数:
SQL> select count(*) from test;
COUNT(*)
----------
789
在某个时间点有多少行(请注意,我在删除这些行之前已标出时间;那是06.06.2019 08:43:56):
SQL> select count(*) from test
2 as of timestamp to_timestamp('06.06.2019 08:43:56', 'dd.mm.yyyy hh24:mi:ss');
COUNT(*)
----------
873
SQL>