我们的应用只支持11gR1或者更高的版本, select * from v$version;  这个是能查出版本信息,如何在程序中判断高于11gR1呢?有没有固定比较好的方法,我要在安装的时候程序判断这个来确定继续或者退出

解决方案 »

  1.   

    11gR1 = 11.111gR2 = 11.2 你只要判断是不是大于11.1 就好了。
      

  2.   

    有一个简单的参考资料,看看。
    http://blog.csdn.net/tianlesoftware/article/details/6254920
      

  3.   

    SELECT * FROM PRODUCT_COMPONENT_VERSION
    这个也是
      

  4.   

    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查出来是这些东西
      

  5.   

    可不可以通过正则函数提取出你想要的信息在进行比较呢
    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%';
      

  6.   

    select version from v$instance;但是说实在的,Oracle的这些视图一直再变,不断的在修正。
    通过这些视图查询也不算什么通用做法。
      

  7.   

     不知道我说的算不算一种方法,用第三方工具pl/sql dev,打开一个命令窗口就可以看到版本了。
      

  8.   

    select * from dba_registry_history;