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

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

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

如何在程序中判断高于11gR1呢?有没有固定比较好的方法,我要在安装的时候程序判断这个来确定继续或者退出
...全文
375 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
醉爱梁静茹 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
  • 打赏
  • 举报
回复
没有办法吗??????????

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧