Oracle

Oracle Change Management

The nastiest thing about Oracle is that half a script can become irreversible. The moment a DDL statement runs, it also commits whatever was pending. The product catches that trap before the request is even saved.

Atomicity

The implicit commit problem

What the problem is

In Oracle, statements such as DDL, GRANT, REVOKE and TRUNCATE implicitly commit whatever was pending before them. If a script updates data and then alters a table, the update cannot be rolled back even when the alter fails.

What the product does

Two separate rules detect this ordering during parsing: a statement that causes an implicit commit appearing after a data change, and DDL mixed with DML in the same script. Both surface before the request is saved.

Partial success is a state, not an accident. On Oracle an execution can stop halfway. The product treats that as its own state: for a request that failed during execution, generating and running a rollback script is allowed, because there really is a partial change to undo.

What happens on the Oracle side

AST based parsing

Oracle scripts are turned into a syntax tree by a grammar analyser. Rules run on that tree, so anonymous blocks, package bodies and nested structures are classified correctly.

Rollback generation

The product can generate a rollback script. On Oracle the generated script is written to be safely repeatable and is run in full; no partial skipping is applied.

Per server flags

A rollback script can be made mandatory for a server, and automatic rollback generation can be enabled. These settings live on the server definition rather than a single organisation wide rule.

Shared rule set

Critical object protection, data changes without a WHERE clause, permission changes and naming rules come from the same rule set on Oracle too. Each rule declares which database types it applies to.

Scope note

Oracle is supported here as a managed target database: scripts are parsed with Oracle grammar, executed on Oracle servers and object definitions are read from them.

The database where the product keeps its own records runs on SQL Server. In other words, managing your Oracle estate requires a small record database on the SQL Server side.

Screens

Request list screen with the status, the risk band and the target servers
Request list Status, band and target servers together.
Server management screen with the database type, the environment and the rollback flags
Server definition Database type and rollback flags live here.
Change request screen with the script and atomicity warnings
Script and warnings Atomicity warnings appear before the save.