在开发时用到需要提取当前的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了解的还是太少啊! 继续努力!
阅读(3127) | 评论(0) | 转发(0) |