我们安装了Oracle Enterprise Edition 10,正如我们的DBA向我解释的那样,Oracle Enterprise安装包括所有扩展,并且您只是根据您的使用许可。
我们发现我们正在使用Oracle Spatial,但我们不希望这样。我可以自己确认它与这个SQL一起使用:
select * from dba_feature_usage_statistics;
不幸的是,这是我能找到的全部内容。我们有大量使用Spatial元素的应用程序,但在向我们所有供应商询问后,他们向我们保证他们的应用程序正在使用Oracle Locator(这是Spatial的免费子集)。
所以我的问题很简单 - 如何确切地发现哪个应用程序正在使用Oracle Spatial扩展? 或者(通过ik_zelf的回答揭示),我如何证明我只使用Spatial的Locator子集。
答案 0 :(得分:2)
检查sdo元数据:
select * from mdsys.sdo_geom_metadata_table where sdo_owner not in ('MDSYS', 'OE')
当您在dba_feature_usage_statistics中深入挖掘时,您会发现此查询是确定正在使用的内容和不使用内容的一部分。模式的MDSYS和OE不计算在内,即使它们有sdo对象。
答案 1 :(得分:0)
Oracle网站上有一个Oracle Spatial与Oracle Locator一部分的功能列表:http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_locator.htm#SPATL340 - 特别注意列出仅在Oracle Spatial中可用的内容的部分。
简短的故事是(基本上)以下内容不在Locator的桌面上:
存储,索引,分区,sdo_util包,坐标转换等等都完全在Locator中。我只需检查dba_source
视图中是否存在任何使用任何禁用函数的存储过程。
对于数据库之外的代码,我想你必须接受别人的话,但根据我的经验,外部应用程序倾向于使用自己的方法而不是Oracle内置功能。</ p>