使用ORA_ROWSCN查找当前和紧接的先前事务

时间:2015-11-13 11:18:23

标签: oracle plsql transactions

我有表TEST_TABLE有3列COL1(数字),COL2(Varchar),COL3(日期)。 我想在两个不同的事务的匿名块中找到以下查询的结果。一个用于当前事务,另一个用于前一个事务。如何使用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 ;

1 个答案:

答案 0 :(得分: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;