In 8i where there's no dbms_flashback nor v$database.current_scn info, one could read the current SCN ouf from SGA memory directly. The following example displays SCN with all three mentioned techniques on a 32bit environment. )In 64bit environment the script would be even simpler as all 8 bytes of SCN are accessible on one word-size line from X$KSMMEM).
-- find where current SCN lives in SGA:
SQL> select ksmfsadr from x$ksmfsv where ksmfsnam = 'kcsgscn_';
KSMFSADR -------- 20009104
SQL> l 1 select dbms_flashback.get_system_change_number flashback_scn, 2 current_scn, 3 (select to_number(ksmmmval,'XXXXXXXX') 4 from x$ksmmem where addr = hextoraw('20009104')) * power(2,32) + 5 (select to_number(ksmmmval,'XXXXXXXX') 6 from x$ksmmem where addr = hextoraw('20009108')) direct_scn 7* from v$database SQL> /
FLASHBACK_SCN CURRENT_SCN DIRECT_SCN ------------- ----------- ---------- 2633692 2633692 2633692
current_scn in V$DATABASE in 10g?
On 5/11/06, Jared Still <jkstill@xxxxxxxxx> wrote:
On 5/11/06, Prabhu, K <prabhu_adam@xxxxxxxxxxx> wrote: > > > > > List, > > > > How to get current SCN number other than using dbms_flashback package. > > > > Thanks for your advice. > > > > Thanks > > > Prabhu. > > > > ________________________________ Express yourself instantly with MSN Messenger! MSN Messenger > >
-- Jared Still Certifiable Oracle DBA and Part Time Perl Evangelist
-- Niall Litchfield Oracle DBA http://www.orawin.info -- http://www.freelists.org/webpage/oracle-l