2009-09-14 74 views
1

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

回答

3

下列情况之一将可能给你你需要什么:

select * from v$version 

select * from product_component_version 

XE很可能会出现在这里,你可以检查该字符串的presense。

无耻地从here

1

我碰到了同样的问题扯掉。我的解决方案是将这些版本特定的功能嵌入到匿名块中并测试特定的错误代码。像这样的:

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; 

不完全是你要求的,但它一直在为我工作得很好。

+0

会认为标准版和XE是一样的 – 2009-09-15 01:13:40

+0

是的,标准版和XE具有相同的功能。 – Mac 2009-09-15 07:53:46