The below content is based on a David Peake's presentation at OOW 2012 and APEX World 2013.
As the Oracle Database 12c is not out yet at the time of writing, note that things might be different in the final product.
The Oracle Database 12c is a major release in Oracle history, as it contains a complete redesign of the underlying architecture. Two things will come back a lot when you read about Oracle DB 12c; the Container Database (CDB) and the Pluggable Database (PDB).
The below image shows how it works; you have a container database which the memory and processes are attached at, and then you can have multiple other databases that you can just plugin.
You find more information about this architecture
here.
So what does Oracle DB 12c mean for APEX?
Oracle DB 12c comes with APEX 4.2.0. You can either install APEX in the CDB or in the PDB. APEX 4.2.0 is the minimum version you can install in Oracle DB 12c.
The advantage of running APEX in the CDB is that when you upgrade APEX, all database plugged into that CDB will have the latest version of APEX.
The advantage of installing APEX in the PDB is that you can run different versions of APEX in the different databases.
If APEX is installed in the CDB, you can't remove APEX from CDB$Root anymore.
But one of the first things I would do is either upgrade APEX 4.2.0 to 4.2.2 or install APEX 4.2.2 from scratch depending which option you went with.
When you upgrade from DB 11g with APEX to 12c PDB here's a screenshot of the steps to take:
When you install APEX in the Oracle database 12c, some new options will become available in APEX, build on top of some new Oracle database 12c features.
The 12c database parameter - max_string_size will allow you to upgrade your
VARCHAR2 from 4k (standard) to 32K (extended).
If you look in your APEX installation you will find
/core/collection_member_resize.sql. Running that script will change the APEX collection VARCHAR2 columns from 4K to 32K.
In 12c there's also a new column type that is basically an "auto numbering field", something you would typically do with a sequence and trigger. In 12c the column type is called "Identity column" and it can have following values: ALWAYS - which means a Sequence number is always used, DEFAULT set value, DEFAULT ON NULL use seq nr if null.
When you run APEX in a 12c database, SQL Workshop will allow to specify an identity column in the create table wizards. Also the Create Form/Report wizard will create the correct item type (display only).
Another new column type in 12c database is the "Invisible Column": SELECT * from
will not display invisible columns. INSERT into
will not insert into invisible columns.
To insert into the invisible column you must explicitly set it.
In APEX - SQL Workshop - Object browser; the column will not show up.
Data Redaction, to mask your application data dynamically, is also a new feature in Oracle 12c. Before you had to setup VPD policies and do FGAC (Fine Grained Access Control), now it becomes more native in 12c. APEX will just show you what you are allowed to see following your policy. For example depending your policy you will see a credit card number like 4541 **** **** **** or null. You can read more about data redaction and masking in a
blog post of Lewis Cunningham.