Take the 2-minute tour ×

The QA department that tests my apps at work uses an Oracle database that they all share. Things get really hairy w/ their cases getting changed. bug reported filed + I spend time just to find out the test case has been changed = time wasted.

What I'd like is for dev and qa to all have our own copy of Oracle running on our machines, so we can protect our data and chase our tails... less.

The problem, which I understand, is we don't have funding for all those licenses. Using an open source database won't work because we have all kinds of PL/SQL packages and triggers that I'm sure tie us to Oracle.

Does anyone know of a way (or maybe an open source product) to "fake" an Oracle database? There are no performance requirements at all. I don't mean mocking objects (we do use that for unit testing), but the actual "listening on a port for your request" RDMS. It's a longshot, but I have to ask.

share|improve this question
You don't all have your own instances, I suspect, for one very practical reason - it makes collaboration a nightmare. You should have AT MINIMUM a dev instance of Oracle, a test instance, and production. I have worked at companies that had a dev, test, qa, preprod, and prod, which to me is a bit much. But the Express solution below should give you a playground to test out ideas and prototype. –  GrayFox374 Aug 10 '12 at 20:44
I see your point. Thanks. –  Stinky Aug 10 '12 at 22:48
add comment

3 Answers

up vote 6 down vote accepted

Use Oracle Express for this purpose.


Oracle Database 11g Express Edition

Free to develop, deploy, and distribute

Oracle Database 11g Express Edition (Oracle Database XE) is an entry-level, small-footprint database based on the Oracle Database 11g Release 2 code base. It's free to develop, deploy, and distribute; fast to download; and simple to administer.

Oracle Database XE is a great starter database for:

Developers working on PHP, Java, .NET, XML, and Open Source applications

DBAs who need a free, starter database for training and deployment


Educational institutions and students who need a free database for their curriculum


Oracle Database XE can be installed on any size host machine with any number of CPUs (one database per machine), but XE will store up to 11GB of user data, use up to 1GB of memory, and use one CPU on the host machine.

Support is provided through a free Oracle Discussion Forum monitored by Oracle employees as well as community experts.

share|improve this answer
Ugh, you beat me by 8 seconds. –  Mike Christensen Aug 10 '12 at 20:39
add comment

You can use Oracle XE (Express Edition) which is free.

You can download it here.

share|improve this answer
add comment

Assuming that each developer needs less than 11 GB of data in their personal copy of the database, have you looked at using the free express edition of the Oracle database? You can install that on your local machine or even deploy it in production free of charge. You can't use enterprise edition features but basic PL/SQL should work exactly as it does in whatever edition of the database you're using now.

It's not obvious to me, however, that this is really the solution to the problem you're having. If test cases are getting changed without that information getting communicated to developers or test data that one person is relying on is being changed by some other person, creating more database instances with more copies of the same data isn't likely to be terribly helpful. If you have a local copy of the database, you need some way of getting the current version of all the objects (tables, packages, triggers, etc.). You need some way of getting the data that a particular tester is relying on. You need some way of moving your changes from your machine to the shared databases in a way that doesn't stomp on the changes other developers are making. None of these hurdles are insurmountable, but they do require a very solid build and deployment process-- otherwise, you end up with chaos where the version of code in your database is subtly different than the version of code in everyone else's database and the test data in your system has slightly different characteristics than the test data that QA is using leading to lots of bugs that are reproducible on one system but not another. If your current build and deployment process can't even ensure that test cases aren't changing while bugs are being investigated, I would tend to expect that adding more instances is going to make the problem worse, not better.

share|improve this answer
I've also found WM_CONCAT is mysteriously missing from XE. –  Mike Christensen Aug 10 '12 at 20:42
@MikeChristensen - Well, WM_CONCAT is technically undocumented-- I'm not too shocked that undocumented features don't always work correctly. I'm guessing that they pulled all the Workspace Manager stuff out of the express edition. –  Justin Cave Aug 10 '12 at 20:44
Ah makes sense. I try to use LISTAGG instead, but it's hard to filter out dupes with that function. –  Mike Christensen Aug 10 '12 at 20:47
add comment

Your Answer


