Oracle support (rev. 2)

Implementation Notes

1. Uses DbProviderFactory to avoid a hard dependency on a particular Oracle .NET provider. By default, the Oracle provider (with the invariant name of "Oracle.DataAccess") is used, but there is provision to specify an alternative. Note that the MS provider ("System.Data.OracleClient") is deprecated (see http://msdn.microsoft.com/en-us/library/77d8yct7.aspx)

2. Implementation does not do schema substitution - e.g. CREATE TABLE $schema$.TABLE1 -  for the following reasons:
   * Variable substitution or custom script pre-processors can be used instead
   * Overly simplistic for my purposes which require database objects to be created in multiple schemas.

3. Uses a GUID as the Schema Version table's primary key instead of a number. Oracle doesn't have an IDENTITY column. A SEQUENCE would be required to emulate IDENTITY. Possible, but more work.

4. By default, the schema version table name is SCHEMA_VERSIONS in the DBUP schema; since Oracle prefers upper-case, underscore separated names.

5. Assumes the DBUP schema/user already exists. The default names can be overriden explicitly if required (see OracleScriptExecutor).

6. Used with Oracle Express 11g. Presume it to work with full versions of Oracle, but untested.

7. Console application not updated (which also does not support SqlCe)