This is a repost of my original blog post in 2012: http://daust.blogspot.de/2012/08/clarification-on-oracle-xe-licensing.html
1.11.2017: I have added two more clarifications regarding the use of virtual machines (VMs) and even Docker instances. Thankfully Gerald Venzl from Oracle helped me out here.
3.11.2017: Added another clarification regarding "your end customers would have to agree to the XE license agreement" (Thanks to Dan McGhan) .
Since Oracle XE was initially released in January 2006 I believed there was no usage restriction whatsoever with regards to the type of application you could build with Oracle XE and especially in combination with Oracle Application Express (Oracle APEX).
Just recently a customer of mine was told by an Oracle sales rep in Germany that certain usage scenarios are not covered by the Oracle XE license and he, therefore, would have to purchase a regular Oracle (at least Standard One) license for that purpose.
This sales rep argued that once you build an application as a hosted solution storing customer data in this database, this is no longer covered by the XE license.
I was stunned and couldn't believe that. Then I had a close look at the official license agreement: http://www.oracle.com/technetwork/licenses/database-11g-express-license-459621.html
There I noticed that this usage scenario wasn't covered explicitly and I wasn't 100% sure anymore. I have checked the forum again and there I saw, that these questions do come up once in a while, here are just a few examples:
Thus I decided to get some official statement from Oracle.
Oracle authorities from Database Product Management and Oracle Pricing responded to my request and confirmed that any application-specific usage of Oracle XE is covered by the license agreement and there is no usage related restriction imposed on Oracle XE.
I have explicitly asked for the following use cases:
1) A web application for the internal staff only: A calendaring application where one could record his times of absence. The application is reachable via the internet but protected by a login. Only the employees of the company running Oracle XE are allowed to access the application.
2) A web application used by everybody, no customer content stored in the database: This could be a company website which is built on Oracle XE / APEX. This application is reachable over the internet by everybody. Content is only provided by the company running Oracle XE.
3) A web application used by customers on their own data (no manipulation through the website): This could be an application similar to the UPS or DHL tracking of parcels. Information is processed in other backend systems and published to Oracle XE to allow a customer to query for his/her own data.
4) Supporting a business process via a web application among several of my customers: This could be a portal allowing a customer to invite other parties to bid on a public project (like building a railroad track). This portal (built using Oracle APEX and Oracle XE) supports the communication between all parties and allows the upload/download of files with regard to specific parts of the bid.
5) A web application used by customers to provide services to others: This could be multi-tenant shop system where different customers open their own shop and upload their product catalogs in order to resell them to their own customers.
In addition to these statements, Gerald Venzl from Oracle confirmed that the use of virtual machines and even Docker instances are covered by the Oracle XE license agreement:
Aside from that you would still have to comply to all other elements of the license agreement: http://www.oracle.com/technetwork/licenses/database-11g-express-license-459621.html ,
i.e. you have to comply to the export restriction, your end customers would have to agree to the XE license agreement (if shipping an embedded Oracle XE as part of your own product/application) and so forth. Since this blog post doesn't replace the actual license agreement, please make sure are aware of all the implications.
Cheers and enjoy Oracle XE and Oracle APEX!