如何判断当前Oracle版本高于某一特定版本

ladofwind 2013-08-15 03:02:45
我们的应用只支持11gR1或者更高的版本,

select * from v$version; 这个是能查出版本信息,

如何在程序中判断高于11gR1呢?有没有固定比较好的方法,我要在安装的时候程序判断这个来确定继续或者退出
...全文
355 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
醉爱梁静茹 2013-09-17
select * from dba_registry_history;
  • 打赏
  • 举报
回复
ladofwind 2013-09-04
没有好办法了吗?
  • 打赏
  • 举报
回复
ladofwind 2013-09-03
有没有好办法?
  • 打赏
  • 举报
回复
ladofwind 2013-08-30
引用 12 楼 zhaoxiangchong 的回复:
不知道我说的算不算一种方法,用第三方工具pl/sql dev,打开一个命令窗口就可以看到版本了。
程序自动处理,安装软件时,自动判断,低版本就警告然后退出,高版本库才继续。
  • 打赏
  • 举报
回复
善若止水 2013-08-29
不知道我说的算不算一种方法,用第三方工具pl/sql dev,打开一个命令窗口就可以看到版本了。
  • 打赏
  • 举报
回复
ladofwind 2013-08-29
引用 10 楼 goodboy1881 的回复:
select version from v$instance; 但是说实在的,Oracle的这些视图一直再变,不断的在修正。 通过这些视图查询也不算什么通用做法。
是啊,纠结,要么我就把支持的列出来? 11,12, 将来出了13改代码?
  • 打赏
  • 举报
回复
积木 2013-08-20
select version from v$instance; 但是说实在的,Oracle的这些视图一直再变,不断的在修正。 通过这些视图查询也不算什么通用做法。
  • 打赏
  • 举报
回复
ladofwind 2013-08-16
还有什么好的办法吗?
  • 打赏
  • 举报
回复
ladofwind 2013-08-16
引用 8 楼 jascjasc 的回复:
可不可以通过正则函数提取出你想要的信息在进行比较呢
select case when REGEXP_SUBSTR(t.banner,'[0-9]{2}.[0-9]')>=11.1 then 1 else 0 end case
from v$version t 
where t.banner like 'Oracle Database%';
不知道之前的库标记方式是不是这样,我觉得应该有一个普遍的方式吧?
  • 打赏
  • 举报
回复
jascjasc 2013-08-16
可不可以通过正则函数提取出你想要的信息在进行比较呢
select case when REGEXP_SUBSTR(t.banner,'[0-9]{2}.[0-9]')>=11.1 then 1 else 0 end case
from v$version t 
where t.banner like 'Oracle Database%';
  • 打赏
  • 举报
回复
ladofwind 2013-08-15
SQL> select banner from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production CORE 11.2.0.1.0 Production TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production 查出来是这些东西
  • 打赏
  • 举报
回复
SELECT * FROM PRODUCT_COMPONENT_VERSION 这个也是
  • 打赏
  • 举报
回复
积木 2013-08-15
有一个简单的参考资料,看看。 http://blog.csdn.net/tianlesoftware/article/details/6254920
  • 打赏
  • 举报
回复
陈字文 2013-08-15
good idea!
  • 打赏
  • 举报
回复
积木 2013-08-15
11gR1 = 11.1 11gR2 = 11.2 你只要判断是不是大于11.1 就好了。
  • 打赏
  • 举报
回复
ladofwind 2013-08-15
没有办法吗??????????
  • 打赏
  • 举报
回复
相关推荐
发帖
基础和管理
加入

1.7w+

社区成员

Oracle 基础和管理
社区管理员
  • 基础和管理社区
申请成为版主
帖子事件
创建了帖子
2013-08-15 03:02
社区公告
暂无公告