代码之家  ›  专栏  ›  技术社区  ›  Mirvnillith

如何检测Oracle XE?

  •  1
  • Mirvnillith  · 技术社区  · 17 年前

    我们使用本地XES进行快速开发,但部署在“真实”的Oracle上。我们的一些脚本使用分区和位图索引,我们希望跳过XE的这些部分,因为它们不受支持,但是没有单独的脚本集。 我们是否可以使用任何SQL来检测脚本是否正在XE上运行,以便调整语句?

    2 回复  |  直到 17 年前
        1
  •  3
  •   skaffman    17 年前

    以下其中一项可能会满足您的需求:

    select * from v$version 
    
    select * from product_component_version
    

    XE可能会出现在这里,您可以检查该字符串的存在。

    不知羞耻地从 here

        2
  •  1
  •   Mac    17 年前

    我也遇到了同样的问题。我的解决方案是将这些特定于版本的特性嵌入匿名块中,并测试特定的错误代码。像这样:

    BEGIN
        EXECUTE IMMEDIATE 'CREATE BITMAP INDEX myIndex ON myTable';
    EXCEPTION
        WHEN OTHERS THEN
            IF SQLCODE=-439 THEN -- bitmap index not supported
                EXECUTE IMMEDIATE 'CREATE INDEX myIndex ON myTable';
            END IF;
    END;
    

    不完全是你要的,但对我来说效果很好。