在开发时用到需要提取当前的scn, 上网查询了一下:
select dbms_flashback.get_system_change_number scn from dual;
真是大意了, 就测试了一个oracle 9i 就说ok了, 结果今天要用oracle 8i的, 直接报错了。
没办法,又去查了:
select max(ktuxescnw * power(2, 32) ktuxescnb) scn from sys.x$ktuxe;
自己在sqlplus下测试为:
sql> select max(ktuxescnw * power(2, 32) ktuxescnb) scn from sys.x$ktuxe;
select max(ktuxescnw * power(2, 32) ktuxescnb) scn from sys.x$ktuxe
*
error 位于第 1 行:
ora-00942: 表或视图不存在
怎么会这样呢?
找了,好半天,结果还是问出来的。 原来x$表只可以sysdba用户才可以访问哦!
得这样来做就可以了:
create or replace view xx123 as select * from sys.x$ktuxe;
原后做:
sql> select max(ktuxescnw * power(2, 32) ktuxescnb) scn from sys.xx123;
scn
----------
592899
就可以了, 用自己建立的视图来访问x$ktuxe表就可以了。
哎, 对oracle了解的还是太少啊! 继续努力!
阅读(3091) | 评论(0) | 转发(0) |