determine the latest COMMIT operation for the row

    技术2022-05-19  23

    In 10g there is a new pseudocolumn of any table that is not fixed or external. It represents the SCN of the most recent change to a given row, that is, the latest COMMIT operation for the row. For example:

    SELECT ora_rowscn , last_name, salary  FROM employees  WHERE employee_id = 7788; ORA_ROWSCN    NAME    SALARY ----------    ----    ------     202553    Fudd      3000

    The latest COMMIT operation for the row took place at approximately SCN 202553. You can use function SCN_TO_TIMESTAMP to convert a SCN, like ORA_ROWSCN, to the corresponding TIMESTAMP value.

    SQL> create table table_test(id number, name varchar2(50)); Table created. SQL> set time on 16:26:06 SQL> insert into table_test values (1, 'name1'); 1 row created. 16:26:27 SQL> commit; Commit complete. 16:26:30 SQL> insert into table_test values (2, 'name2'); 1 row created. 16:26:37 SQL> commit; Commit complete. 16:26:39 SQL> insert into table_test values (3, 'name3'); 1 row created. 16:26:47 SQL> commit; Commit complete. 16:26:48 SQL> select max(scn_to_timestamp(ora_rowscn)) from table_test; MAX(SCN_TO_TIMESTAMP(ORA_ROWSCN)) --------------------------------------------------------------------------- 23-OCT-08 04.26.47.000000000 PM 16:27:38 SQL>

    最新回复(0)