gpt4 book ai didi

database - 如何查看自上次在 Oracle 10 中提交以来更改的所有记录?

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:55 24 4
gpt4 key购买 nike

我有一个相当大的 Oracle PL/SQL 脚本正在测试,我想知道是否可以查看自上次提交到数据库以来更新/删除/插入了哪些记录?我需要一种更快的方法来检查所有数据库操作是否正确完成。我可以访问命令行以及 Oracle 的自定义工具 SQL Developer

最佳答案

在 Oracle 10g 中(我认为从 9i 开始)您可以为此使用闪回查询。

通常,当您需要查看前段时间的数据时,会使用闪回查询,但在您的情况下,诀窍在于闪回查询只能看到已提交的数据。

所以,这是一个简单的例子:

SQL> create table t1 as select level lev from dual connect by level < 100;

Table created.

SQL> select count(*) from t1;

COUNT(*)
----------
99

SQL> select count(*) from t1 as of timestamp systimestamp;

COUNT(*)
----------
99

SQL> update t1 set lev = -lev;

99 rows updated.

SQL> select max(lev) from t1 as of timestamp systimestamp;

MAX(LEV)
----------
99

SQL> select max(lev) from t1;

MAX(LEV)
----------
-1

SQL> commit;

Commit complete.

SQL> select max(lev) from t1 as of timestamp systimestamp;

MAX(LEV)
----------
-1

SQL>

UPD:更好的是,您可以使用 Flashback Version Query或闪回事务查询,并进行一些调整以过滤除当前 session 之外的所有 session 所做的更改。

关于database - 如何查看自上次在 Oracle 10 中提交以来更改的所有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com