What's new in Oracle 12c Database for developers?

Monday, September 29, 2014

One of the sessions at Oracle Open World 2014 was a session about the new features in the Oracle 12c database that can be of use for developers. The session was given by Alex Nuyten. (Most of the credits for this blog post go to him.)


The new features that spoke out to me the most are these:


  • Define Tables with Valid-Time Support


You can add a valid time dimension to a table using existing columns or using columns automatically created by the database. This can be done with both the CREATE TABLE and ALTER TABLE statements.

Applications often indicate the validity of a fact recorded in the database with dates or time stamps that are relevant to the underlying business they manage. Examples of such dates include the hire date of an employee in a Human Resources application, the effective date of coverage for an insurance policy, or the effective date of a change in address. This is in contrast to the date or time at which the fact was recorded in the database. The former temporal attribute is usually called valid-time (VT), while the latter is called transaction - time (TT). Valid-time is typically controlled by the user or application, while transaction-time is system managed. Valid-time support in Oracle Database reduces the complexity of application code by providing a simple declarative interface to allow the database to manage the validity of rows.

Users can now use VERSIONS_BETWEEN with flashback query’s.


  • Mechanism to Restrict the Ability to Reference a PL/SQL Unit to a White List of Database Objects


It is now possible to mark a schema-level function, procedure, package, or type specification with a white list of allowed callers. The allowed caller may be of any object type that can invoke a PL/SQL subprogram (for example, a trigger, view, table, or index), but it must be in the same schema as the unit that has the white list. The white list is optional but, when used, only the listed objects may reference the unit in question. Cross-schema references to a unit with a white list are, therefore, disallowed even when the reference is attempted from a schema owned by SYS.

This capability supports the robust implementation of a module, consisting of a main unit and helper units, by allowing the helper units to be inaccessible from anywhere except the unit they are intended to help.


  • Oracle Data Redaction – Part of the Oracle Advanced Security option in Oracle Database 1

DBMS_REDACT enables the masking of data that is returned from queries issued by low privileged users or applications.

Different masking styles such as full, partial, random, and regular expressions can be applied to mask data. These masking styles are applied through a Redaction Policy. With SQL Developer, Redaction Policies are managed centrally. Policies can be created and applied to disguise any sensitive data like credit-card numbers.


  • JSON in Oracle Database


From Oracle 12.1 there is a new feature added to insert , query and index JSON formatted data directly into the database.

More info about this new feature can be found at http://docs.oracle.com/database/121/ADXDB/json.htm#ADXDB6246


See also our previous post on New Features for developers within 12c:



More info about these and all other new features for developers in Oracle 12c can be found here: