7

IT in my org are wary about approving me installing Oracle Express Edition. https://www.oracle.com/database/technologies/xe-downloads.html

Their reasoning is that apparently some DBA once said that devs can trigger some enterprise features accidentally while using it, and rack up hundred thousands of dollars in usage fees. I'm skeptical because I can't find any information online that would suggest that. Though I know Oracle doesn't have a great reputation.

From looking at XE description, it seems to be designed so that devs can install it on their environments to get a prototype working etc. Without having to worry about fees and licenses. Is it true, can using Oracle XE on my dev box in a large company somehow rack up fees without knowing about it?

5

Oracle Express Edition is free software that can be used even for commercial purpose.

What the DBA said is true for Enterprise Edition where some features can not be completely disabled (e.g. Advanced Compression), and it was true for Standard Edition in versions below 11g (e.g. Diagnostic Pack).

Express Edition will be fine.

For a personal learning/development environment, you could even use Enterprise Edition, if you will be the only one using it.

4

Any Oracle licencing questions are ultimately determined by Oracle. It would be hard to incur extra costs but if you could enable these features which are not available by default in 10g/11g Xe you could have an audit issue. The use of

  • partitioned objects
  • internal Java virtual machine (JVM)
  • materialized view query rewrite
  • changing character set on 11.2 (only AL32UTF8 is allowed)

However in the 18g express version partioning is enabled and advanced security so that would be a better choice.

Tim Hall has this query which shows what features have been used

SELECT u1.name,
       u1.detected_usages,
       u1.currently_used,
       u1.version
FROM   dba_feature_usage_statistics u1
WHERE  u1.version = (SELECT MAX(u2.version)
                     FROM   dba_feature_usage_statistics u2
                     WHERE  u2.name = u1.name)
AND    u1.detected_usages > 0
AND    u1.dbid = (SELECT dbid FROM v$database)
ORDER BY name;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.