SlideShare a Scribd company logo
Oracle 12c New Features
for Developers
By Complete IT Professional
www.completeitprofessional.com
Oracle 12c
• Released in 2013
• Contains a lot of new features
• Some are useful for DBAs, some are useful for developers, some for both
• As a developer, what do you need to know?
• I wrote an entire post on it:
http://www.completeitprofessional.com/oracle-12c-new-features-for-developers
• These slides explain all of those features
Increased column size limits
• VARCHAR2, NVARCHAR2, and RAW are larger than previous
Oracle versions
Data Type Oracle 11g
Limit
Oracle 11g
PL/SQL Limit
Limit in
Oracle 12c
VARCHAR2 2K 4K 32K
NVARCHAR2 2K 4K 32K
RAW 2K 4K 32K
Increased column size limits
• How can you use the new sizes?
• Change the setting called MAX_STRING_SIZE within the init.ora
file
• STANDARD – old sizes
• EXTENDED – new sizes
APPROX_COUNT_DISTINCT
• New function – APPROX_COUNT_DISTINCT
• Gives you an approximate count of records
• Faster than COUNT
• Not 100% accurate but pretty close
Row Limiting with Top N
• Getting the top N rows can be hard in Oracle
• In Oracle 12c, you can use new syntax
• FETCH FIRST 10 ROWS ONLY – shows only the first 10 rows
Row Limiting with Top N
SELECT first_name, last_name, date_of_birth
FROM student
ORDER BY date_of_birth
FETCH FIRST 10 ROWS ONLY;
Pattern Matching
• Pattern matching is easier in Oracle 12c
• Uses the MATCH_RECOGNIZE keyword
Pattern Matching Syntax
SELECT columns
FROM table
MATCH_RECOGNIZE (
PARTITION BY ...
ORDER BY ...
MEASURES ...
PATTERN...
DEFINE...
)
ORDER BY col1...
JSON in Database
• Oracle 12c now support JSON in database columns
• You can query directly inside the column data
JSON Example
{
“businessName”:”Cars Galore”,
“address”:{
“streetNumber”:”14”,
“streetName”:”Main Street”,
“city”:”Denver”,
“state”:”Colorado”,
“country”:”USA”},
“businessIndustry”:”Automotive”
}
SELECT
b.document.businessName,
b.document.address.streetNumber,
b.document.address.streetName
FROM businesses b
Lateral Clause for Inline Views
• Normally you can’t refer to columns outside an inline view
from within the inline view
• With a LATERAL clause, you can
Lateral Clause Example
SELECT first_name, last_name, school_name
FROM student s,
LATERAL (SELECT school_name
FROM school sc
WHERE sc.school_id = s.school_id)
CROSS APPLY Clause
• Similar to Lateral
• Variant of the CROSS JOIN
• Right side of the keyword can reference the column on the left
CROSS APPLY Example
SELECT first_name, last_name, school_id, school_name
FROM student s,
CROSS APPLY (SELECT school_name
FROM school sc
WHERE sc.school_id = s.school_id
AND sc.school_state = ‘California’)
OUTER APPLY Clause
• Similar to CROSS APPLY
• More like a LEFT OUTER JOIN
OUTER APPLY Example
SELECT first_name, last_name, school_id, school_name
FROM student s,
OUTER APPLY (SELECT school_name
FROM school sc
WHERE sc.school_id = s.school_id
AND sc.school_state = ‘California’)
Partial Join Evaluation
• New optimisation type
• Part of the optimisation process
• You might see it in the Explain Plan
• Partial Join Evaluation
• Also called PJE
Cascading Truncate
• Have you tried to TRUNCATE a table that had other records
referring to it, and got an error about foreign keys?
• With Oracle 12c, you can run a TRUNCATE CASCADE
• This will skip this error and delete the rows that refer to it
• Only works if the foreign key is defined as ON DELETE
CASCASE
Cascading Truncate Example
TRUNCATE TABLE parent_table_name CASCADE;
Pluggable Databases
• One of the main features in Oracle 12c
• A “root” database is created
• “Seed” database is a template for creating other databases
• “Pluggable databases” are where the data is stored
• All inside the root
Why pluggable databases?
• Easier maintenance
• Easier implementation of new databases – just copy the seed
• Easier to move to the cloud
Invisible Columns
• Columns that do not appear in the table definition or SELECT *
statements
• Use the INVISIBLE keyword when defining a column
Invisible Indexes
• Allows more than one index on a column at one time
• Create index and add the INVISIBLE keyword
Identity Columns
• Set a column to automatically generate a value
• Similar to AUTO_INCREMENT in other databases
• Add GENERATED AS IDENTITY to column definition when
creating a table
Default Values
• Simplify data entry
• Use sequences as the default values
• Or use default values only when a NULL is specified
Session Sequences
• Sequences currently keep their values for the database for all
sessions
• Session sequences are new
• They let you retain the value only for the session
• Not very useful for primary keys, but there are other uses
Sequence KEEP and NOKEEP
• KEEP and NOKEEP are keywords for creating sequences
• KEEP retains the NEXTVALUE value for replays during
Application Continuity
• NOKEEP will not retain the NEXTVALUE for these replays
• NOKEEP is the default
Data Redaction
• You can hide certain fields in certain ways
• Replace characters with spaces or numbers
• Or, change part of the information
• Good security feature
Grant Roles to PL/SQL Programs Only
• Previously, you had to grant user access to the PL/SQL
program and the table
• Now, just grant user access to the PL/SQL program
• Program will still access the table
• Makes it more secure
UTL_CALL_STACK Package
• Improvements to the call stack
• Use the UTL_CALL_STACK package to get information about
your call stack
PL/SQL ACCESSIBLE BY Clause
• Allows you to specify which packages can access other
packages
• Helps with security
• Simplifies package definition if you want to implement this
• Add the words ACCESSIBLE BY to the package when defining
PL/SQL Table Operator
• Before 12c, you could only use the TABLE operator in some
situations
• Now, you can use them with locally defined types
WITH Clause and PL/SQL Functions
• Now you can define PL/SQL functions and procedures inside a
WITH clause
• Likely improves run time
• Object is not created and stored in the database
Online DDL Statements
• DDL normally locks tables
• Some statements can now be run in “online” mode, which
does not impact any DML that is running
• Statements relate to indexes, constraints, and columns
DDL Logging
• You can enable DDL logging
• Many DDL statements are captured
• CREATE/ALTER/DROP/TRUNCATE TABLE
• CREATE/ALTER/DROP
PACKAGE/FUNCTION/VIEW/SYNONYM/SEQUENCE
• DROP USER
Bequeath Option
• Allows you to specify which user’s privileges will be used when
running a statement
• Specify either invoker’s or definer’s rights
• Invoker’s rights – the person running the statement
• Definer’s rights – the person who created the object
Period Definition
• Allows you to easily specify which records are valid at a
particular date
• Use the PERIOD clause when creating a table
• You can then use the PERIOD clause in SELECT queries
Conclusion
• Many new features in Oracle 12c
• These are all of the features I think are helpful for new developers
• Find out more here:
http://www.completeitprofessional.com/oracle-12c-new-features-for-developers

More Related Content

What's hot (19)

PPTX
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expr...
Alex Zaballa
 
PPTX
An AMIS Overview of Oracle database 12c (12.1)
Marco Gralike
 
PDF
Ensuring Data Protection Using Oracle Flashback Features
Pini Dibask
 
PDF
The Top 12 Features new to Oracle 12c
David Yahalom
 
PDF
Oracle 12c New Features_RMAN_slides
Saiful
 
PPTX
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Alex Zaballa
 
PPTX
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
PPTX
Ensuring Data Protection Using Oracle Flashback Features - Presentation
Pini Dibask
 
PDF
Oracle 21c: New Features and Enhancements of Data Pump & TTS
Christian Gohmann
 
PDF
Oracle database 12c intro
pasalapudi
 
PDF
Oracle SQL Tuning
Alex Zaballa
 
PDF
RMAN - New Features in Oracle 12c - IOUG Collaborate 2017
Andy Colvin
 
PPTX
Oracle Database 12c - New Features for Developers and DBAs
Alex Zaballa
 
PPTX
Oracle 12c Multi Tenant
Red Stack Tech
 
PDF
Crating a Robust Performance Strategy
Guatemala User Group
 
PDF
DOAG - Oracle Database Locking Mechanism Demystified
Pini Dibask
 
PPTX
Oracle Database 12c - Data Redaction
Alex Zaballa
 
PPTX
Oracle Data Redaction - EOUC
Alex Zaballa
 
PPTX
Oracle Data Redaction
Alex Zaballa
 
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expr...
Alex Zaballa
 
An AMIS Overview of Oracle database 12c (12.1)
Marco Gralike
 
Ensuring Data Protection Using Oracle Flashback Features
Pini Dibask
 
The Top 12 Features new to Oracle 12c
David Yahalom
 
Oracle 12c New Features_RMAN_slides
Saiful
 
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Alex Zaballa
 
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
Ensuring Data Protection Using Oracle Flashback Features - Presentation
Pini Dibask
 
Oracle 21c: New Features and Enhancements of Data Pump & TTS
Christian Gohmann
 
Oracle database 12c intro
pasalapudi
 
Oracle SQL Tuning
Alex Zaballa
 
RMAN - New Features in Oracle 12c - IOUG Collaborate 2017
Andy Colvin
 
Oracle Database 12c - New Features for Developers and DBAs
Alex Zaballa
 
Oracle 12c Multi Tenant
Red Stack Tech
 
Crating a Robust Performance Strategy
Guatemala User Group
 
DOAG - Oracle Database Locking Mechanism Demystified
Pini Dibask
 
Oracle Database 12c - Data Redaction
Alex Zaballa
 
Oracle Data Redaction - EOUC
Alex Zaballa
 
Oracle Data Redaction
Alex Zaballa
 

Viewers also liked (17)

PDF
Oracle Database 12c: Новые возможности Oracle 12c
Andrey Akulov
 
PDF
Oracle 12c New Features
Guatemala User Group
 
PDF
Trivadis TechEvent 2016 Useful Oracle 12c Features for Data Warehousing by Da...
Trivadis
 
PDF
Sql сборник рецептов
knoppix
 
PDF
Все самые важные команды SQL за 60 минут
SkillFactory
 
PDF
Weblogic Cluster monitoring
Aditya Bhuyan
 
PDF
Weblogic Cluster Installation
Aditya Bhuyan
 
PDF
Oracle Coherence & WebLogic 12c Web Sockets: Delivering Real Time Push at Scale
C2B2 Consulting
 
PDF
Scaling Oracle 12c database performance with EMC XtremIO storage in a Databas...
Principled Technologies
 
PPTX
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
Rakuten Group, Inc.
 
PPTX
Why Upgrade to Oracle Database 12c?
DLT Solutions
 
PDF
Weblogic Cluster advanced performance tuning
Aditya Bhuyan
 
DOC
weblogic perfomence tuning
prathap kumar
 
PDF
RMAN in 12c: The Next Generation (PPT)
Gustavo Rene Antunez
 
PPTX
Oracle 12c - Multitenant Feature
Vigilant Technologies
 
PPT
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Toronto-Oracle-Users-Group
 
PDF
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Gustavo Rene Antunez
 
Oracle Database 12c: Новые возможности Oracle 12c
Andrey Akulov
 
Oracle 12c New Features
Guatemala User Group
 
Trivadis TechEvent 2016 Useful Oracle 12c Features for Data Warehousing by Da...
Trivadis
 
Sql сборник рецептов
knoppix
 
Все самые важные команды SQL за 60 минут
SkillFactory
 
Weblogic Cluster monitoring
Aditya Bhuyan
 
Weblogic Cluster Installation
Aditya Bhuyan
 
Oracle Coherence & WebLogic 12c Web Sockets: Delivering Real Time Push at Scale
C2B2 Consulting
 
Scaling Oracle 12c database performance with EMC XtremIO storage in a Databas...
Principled Technologies
 
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
Rakuten Group, Inc.
 
Why Upgrade to Oracle Database 12c?
DLT Solutions
 
Weblogic Cluster advanced performance tuning
Aditya Bhuyan
 
weblogic perfomence tuning
prathap kumar
 
RMAN in 12c: The Next Generation (PPT)
Gustavo Rene Antunez
 
Oracle 12c - Multitenant Feature
Vigilant Technologies
 
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Toronto-Oracle-Users-Group
 
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Gustavo Rene Antunez
 
Ad

Similar to Oracle 12c New Features for Developers (20)

PPTX
Oracle Database 12c - New Features for Developers and DBAs
Alex Zaballa
 
PDF
Exploring plsql new features best practices september 2013
Andrejs Vorobjovs
 
PPT
IEEE Day 2013 Oracle Database 12c: new features for developers
Ramin Orujov
 
PDF
New Stuff in the Oracle PL/SQL Language
Steven Feuerstein
 
PDF
New(er) Stuff in PL/SQL
Steven Feuerstein
 
PDF
Aioug vizag oracle12c_new_features
AiougVizagChapter
 
PPTX
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015
Alex Zaballa
 
PPTX
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
Alex Zaballa
 
PDF
Oracle 11G Development Training noida Delhi NCR
Shri Prakash Pandey
 
PPTX
Oracle 12c
Deborah TIce
 
PDF
Structured Query Language (SQL) - An Introduction
Rajeev Srivastava
 
PPTX
SQL.pptx
SAIFKHAN41507
 
DOC
SQLQueries
karunakar81987
 
PDF
Meet MariaDB 10.3 Debconf 2017
Vicentiu Ciorbaru
 
PPT
RDBMS concepts
◄ vaquar khan ► ★✔
 
PDF
12 things Oracle DBAs must know about SQL
SolarWinds
 
PDF
An AMIS overview of database 12c
Getting value from IoT, Integration and Data Analytics
 
PDF
SQL – The Natural Language for Analysis - Oracle - Whitepaper - 2431343
Edgar Alejandro Villegas
 
PPTX
Cursors, triggers, procedures
Vaibhav Kathuria
 
PPTX
Oracle Database features every developer should know about
gvenzl
 
Oracle Database 12c - New Features for Developers and DBAs
Alex Zaballa
 
Exploring plsql new features best practices september 2013
Andrejs Vorobjovs
 
IEEE Day 2013 Oracle Database 12c: new features for developers
Ramin Orujov
 
New Stuff in the Oracle PL/SQL Language
Steven Feuerstein
 
New(er) Stuff in PL/SQL
Steven Feuerstein
 
Aioug vizag oracle12c_new_features
AiougVizagChapter
 
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015
Alex Zaballa
 
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
Alex Zaballa
 
Oracle 11G Development Training noida Delhi NCR
Shri Prakash Pandey
 
Oracle 12c
Deborah TIce
 
Structured Query Language (SQL) - An Introduction
Rajeev Srivastava
 
SQL.pptx
SAIFKHAN41507
 
SQLQueries
karunakar81987
 
Meet MariaDB 10.3 Debconf 2017
Vicentiu Ciorbaru
 
12 things Oracle DBAs must know about SQL
SolarWinds
 
SQL – The Natural Language for Analysis - Oracle - Whitepaper - 2431343
Edgar Alejandro Villegas
 
Cursors, triggers, procedures
Vaibhav Kathuria
 
Oracle Database features every developer should know about
gvenzl
 
Ad

Recently uploaded (20)

PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 

Oracle 12c New Features for Developers

  • 1. Oracle 12c New Features for Developers By Complete IT Professional www.completeitprofessional.com
  • 2. Oracle 12c • Released in 2013 • Contains a lot of new features • Some are useful for DBAs, some are useful for developers, some for both • As a developer, what do you need to know? • I wrote an entire post on it: http://www.completeitprofessional.com/oracle-12c-new-features-for-developers • These slides explain all of those features
  • 3. Increased column size limits • VARCHAR2, NVARCHAR2, and RAW are larger than previous Oracle versions Data Type Oracle 11g Limit Oracle 11g PL/SQL Limit Limit in Oracle 12c VARCHAR2 2K 4K 32K NVARCHAR2 2K 4K 32K RAW 2K 4K 32K
  • 4. Increased column size limits • How can you use the new sizes? • Change the setting called MAX_STRING_SIZE within the init.ora file • STANDARD – old sizes • EXTENDED – new sizes
  • 5. APPROX_COUNT_DISTINCT • New function – APPROX_COUNT_DISTINCT • Gives you an approximate count of records • Faster than COUNT • Not 100% accurate but pretty close
  • 6. Row Limiting with Top N • Getting the top N rows can be hard in Oracle • In Oracle 12c, you can use new syntax • FETCH FIRST 10 ROWS ONLY – shows only the first 10 rows
  • 7. Row Limiting with Top N SELECT first_name, last_name, date_of_birth FROM student ORDER BY date_of_birth FETCH FIRST 10 ROWS ONLY;
  • 8. Pattern Matching • Pattern matching is easier in Oracle 12c • Uses the MATCH_RECOGNIZE keyword
  • 9. Pattern Matching Syntax SELECT columns FROM table MATCH_RECOGNIZE ( PARTITION BY ... ORDER BY ... MEASURES ... PATTERN... DEFINE... ) ORDER BY col1...
  • 10. JSON in Database • Oracle 12c now support JSON in database columns • You can query directly inside the column data
  • 11. JSON Example { “businessName”:”Cars Galore”, “address”:{ “streetNumber”:”14”, “streetName”:”Main Street”, “city”:”Denver”, “state”:”Colorado”, “country”:”USA”}, “businessIndustry”:”Automotive” } SELECT b.document.businessName, b.document.address.streetNumber, b.document.address.streetName FROM businesses b
  • 12. Lateral Clause for Inline Views • Normally you can’t refer to columns outside an inline view from within the inline view • With a LATERAL clause, you can
  • 13. Lateral Clause Example SELECT first_name, last_name, school_name FROM student s, LATERAL (SELECT school_name FROM school sc WHERE sc.school_id = s.school_id)
  • 14. CROSS APPLY Clause • Similar to Lateral • Variant of the CROSS JOIN • Right side of the keyword can reference the column on the left
  • 15. CROSS APPLY Example SELECT first_name, last_name, school_id, school_name FROM student s, CROSS APPLY (SELECT school_name FROM school sc WHERE sc.school_id = s.school_id AND sc.school_state = ‘California’)
  • 16. OUTER APPLY Clause • Similar to CROSS APPLY • More like a LEFT OUTER JOIN
  • 17. OUTER APPLY Example SELECT first_name, last_name, school_id, school_name FROM student s, OUTER APPLY (SELECT school_name FROM school sc WHERE sc.school_id = s.school_id AND sc.school_state = ‘California’)
  • 18. Partial Join Evaluation • New optimisation type • Part of the optimisation process • You might see it in the Explain Plan • Partial Join Evaluation • Also called PJE
  • 19. Cascading Truncate • Have you tried to TRUNCATE a table that had other records referring to it, and got an error about foreign keys? • With Oracle 12c, you can run a TRUNCATE CASCADE • This will skip this error and delete the rows that refer to it • Only works if the foreign key is defined as ON DELETE CASCASE
  • 20. Cascading Truncate Example TRUNCATE TABLE parent_table_name CASCADE;
  • 21. Pluggable Databases • One of the main features in Oracle 12c • A “root” database is created • “Seed” database is a template for creating other databases • “Pluggable databases” are where the data is stored • All inside the root
  • 22. Why pluggable databases? • Easier maintenance • Easier implementation of new databases – just copy the seed • Easier to move to the cloud
  • 23. Invisible Columns • Columns that do not appear in the table definition or SELECT * statements • Use the INVISIBLE keyword when defining a column
  • 24. Invisible Indexes • Allows more than one index on a column at one time • Create index and add the INVISIBLE keyword
  • 25. Identity Columns • Set a column to automatically generate a value • Similar to AUTO_INCREMENT in other databases • Add GENERATED AS IDENTITY to column definition when creating a table
  • 26. Default Values • Simplify data entry • Use sequences as the default values • Or use default values only when a NULL is specified
  • 27. Session Sequences • Sequences currently keep their values for the database for all sessions • Session sequences are new • They let you retain the value only for the session • Not very useful for primary keys, but there are other uses
  • 28. Sequence KEEP and NOKEEP • KEEP and NOKEEP are keywords for creating sequences • KEEP retains the NEXTVALUE value for replays during Application Continuity • NOKEEP will not retain the NEXTVALUE for these replays • NOKEEP is the default
  • 29. Data Redaction • You can hide certain fields in certain ways • Replace characters with spaces or numbers • Or, change part of the information • Good security feature
  • 30. Grant Roles to PL/SQL Programs Only • Previously, you had to grant user access to the PL/SQL program and the table • Now, just grant user access to the PL/SQL program • Program will still access the table • Makes it more secure
  • 31. UTL_CALL_STACK Package • Improvements to the call stack • Use the UTL_CALL_STACK package to get information about your call stack
  • 32. PL/SQL ACCESSIBLE BY Clause • Allows you to specify which packages can access other packages • Helps with security • Simplifies package definition if you want to implement this • Add the words ACCESSIBLE BY to the package when defining
  • 33. PL/SQL Table Operator • Before 12c, you could only use the TABLE operator in some situations • Now, you can use them with locally defined types
  • 34. WITH Clause and PL/SQL Functions • Now you can define PL/SQL functions and procedures inside a WITH clause • Likely improves run time • Object is not created and stored in the database
  • 35. Online DDL Statements • DDL normally locks tables • Some statements can now be run in “online” mode, which does not impact any DML that is running • Statements relate to indexes, constraints, and columns
  • 36. DDL Logging • You can enable DDL logging • Many DDL statements are captured • CREATE/ALTER/DROP/TRUNCATE TABLE • CREATE/ALTER/DROP PACKAGE/FUNCTION/VIEW/SYNONYM/SEQUENCE • DROP USER
  • 37. Bequeath Option • Allows you to specify which user’s privileges will be used when running a statement • Specify either invoker’s or definer’s rights • Invoker’s rights – the person running the statement • Definer’s rights – the person who created the object
  • 38. Period Definition • Allows you to easily specify which records are valid at a particular date • Use the PERIOD clause when creating a table • You can then use the PERIOD clause in SELECT queries
  • 39. Conclusion • Many new features in Oracle 12c • These are all of the features I think are helpful for new developers • Find out more here: http://www.completeitprofessional.com/oracle-12c-new-features-for-developers