【问题标题】:Use of ORA_ROWSCN to find current and immediate previous transaction使用 ORA_ROWSCN 查找当前和前一个事务
【发布时间】:2015-11-13 11:18:23
【问题描述】:

我的表 TEST_TABLE 有 3 列 COL1(Number)、COL2(Varchar)、COL3(Date)。 我想在两个不同事务的匿名块中找到以下查询的结果。一个用于当前事务,另一个用于前一个事务。如何使用 SCN 实现?

    BEGIN
    Select col3 into v_curr_date from test_table where col1=123; --Current 
    uncommitted Transaction

    Select col3 into v_prev_date from test_table where col1=123; --How to 
    modify this query to find for immediately Previous committed Transaction.

    END ;

【问题讨论】:

  • 我没有看到带有SELECT ..INTO 语句的提交事务的意义。

标签: oracle plsql transactions


【解决方案1】:

下面会告诉你最近发生在桌子上的承诺日期。 SCN_TO_TIMESTAMP 将计算结果为系统更改号 (SCN) 的数字作为参数,并返回与该 SCN 关联的近似时间戳。因此,请相应地修改您的查询。

     DECLARE
     v_prev_date  date;
     BEGIN
     Select SCN_TO_TIMESTAMP(ORA_ROWSCN) into v_prev_date 
     from test_table where col1=123;
     dbms_output.put_line(v_prev_date  );
    end;

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多