Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3903867
  • 博文数量: 534
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4800
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(534)

文章存档

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(253)

2006年(73)

分类: Oracle

2007-11-16 10:18:43

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

上一篇:OS发展历史学习

下一篇:bat文件语法

给主人留下些什么吧!~~