You are on page 1of 68

ITS YOUR PROJECT.

Run it any way you want to.


Untitled-1 1 2/6/14 1:38 AM
GROUND
CONTROL
Oracle Cloud Application
Foundation solutions launch
your cloud applications
MAY/JUNE 2014
Innovate with Java 8 Latest platform release
enhances developer productivity and supports
applications from the Internet of Things to the
cloud / 17 Go with the Flow Oracle Data Integrator
12c supports new ow-based mappings and
deployment specications / 35 Nonstop Partition
Operations Oracle Partitioning delivers online
partition moves, selective indexes on partitions, and
asynchronously maintained global indexes to Oracle
Database 12c / 43 On Oracle Database 12c,
Part 5 Our technologist explores the invisible,
improves introspection, and expands SQL / 55
MJ14_Cover_R1.indd 1 4/8/14 10:51 AM
omg0514pCov2_p001.indd 2 4/4/14 10:30 AM
omg0514pCov2_p001.indd 3 4/4/14 10:31 AM
2
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
VOLUME XXVIII - ISSUE 3 CONTENTS
EVENTS / 11
Find out about upcoming
technology and industry
events.
RESOURCES / 12
Your guide to Oracle videos,
webcasts, white papers,
and more
BRIEFS / 14
The latest product news
INTERVIEW / 17
Innovate with Java 8
Latest platform release
enhances developer
productivity and supports
applications from the Internet
of Things to the cloud.
Caroline Kvitka
PARTNER NEWS / 19
BOOK BEAT / 19
COMMUNITY
BULLETIN / 21
Happenings in Oracle
Technology Network
Roland Smart
ARCHITECT / 22
Why Would Anyone Want
to Be an Architect?
Architects weigh in on what
makes their jobs cool.
Bob Rhubart
PEER-TO-PEER / 23
Taking the Lead
Peers on proactive support
tools, new cloud solutions,
and understanding Oracle
inside out Blair Campbell
IN THE FIELD / 61
DBA to Big Data DBA
Turn your DBA skills into
big data skills.
Michelle Malcher
ANALYSTS
CORNER / 63
Doing Better with Less
New systems and more
applications help drive
many of todays data center
consolidation projects.
Philip J. Gill
TIME CAPSULE / 64
Flashbacks: Culture. Industry.
Oracle. Oracle Magazine.
Rich Schwerin
BUSINESS
ANALYTICS / 35
Go with the Flow
Oracle Data Integrator 12c
delivers new flow-based
mappings and deployment
specifications.
Mark Rittman
At Oracle / 11
Community / 19
Technology / 35
Comment / 61
FROM THE EDITOR / 7
A Foundation for Business
Tom Haunert
MASHUP / 8
News, views, trends,
and tools
Up Front / 7
SQL DEVELOPER / 39
Document Entities
Generate logical models and
entity relationship diagrams
easily from an existing
database with Oracle SQL
Developer Data Modeler.
Jeff Smith
DBA / 43
Nonstop Partition
Operations
Oracle Partitioning
delivers online partition
moves, selective indexes
on partitions, and
asynchronously maintained
global indexes to Oracle
Database 12c. Arup Nanda
PL/SQL / 49
Writing SQL in Oracle
Application Express
Minimize the code you write,
be careful where you put it,
and relocate it to packages as
much as possible.
Steven Feuerstein
Organizations looking for standard methods for
developing, integrating, deploying, and scaling their
cloud applications are choosing Oracle Cloud Application
Foundation, part of Oracle Fusion Middleware. See how
three organizations are using Oracle Cloud Application
Foundation solutions, including Oracle Exalogic, Oracle
WebLogic Server, and Oracle Coherence, to launch their
cloud applications. David Baum
/ 28
GROUND
CONTROL
ASK TOM / 55
On Oracle Database 12c,
Part 5
Our technologist explores
the invisible, improves
introspection, and expands
SQL. Tom Kyte
Cover: I-Hua Chen
MJ14_TOC_R1.indd 2 4/8/14 10:53 AM
PL/SQL shouldn't be
BRAIN SURGERY
Oracle development made easy!
We think Oracle development should be like taking a walk in the park.
Easy development is the key to saving time and money. Thats why
we created the PL/SQL Developer tool. As simple as 1, 2, 3!
www.allroundautomations.com/plsqldev
SCAN THIS PAGE
WITH LAYAR APP FOR
ADDED EXPERIENCE
GO OUT OF yOUR MIND...
4
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
SUBSCRIPTION INFORMATION
Subscriptions are complimentary for qualified individuals who complete the form found at
oracle.com/oraclemagazine. For change of address, mail in label with the new address to:
Oracle Magazine, P.O. Box 1263, Skokie, IL 60076-8263.
MAGAZINE CUSTOMER SERVICE
oracle@halldata.com Fax +1.847.763.9638 Phone +1.847.763.9635
PRIVACY
Oracle Publishing allows sharing of its mailing list with selected third parties. If you prefer that your
mailing address or e-mail address not be included in this program, contact Customer Service at
oracle@halldata.com.
Copyright 2014, Oracle and/or its affiliates. All Rights Reserved. No part of this publication may be reprinted or other wise reproduced without permission from the editors. ORACLE MAGAZINE IS PROVIDED ON
AN AS IS BASIS. ORACLE EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ORACLE BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM YOUR
USE OF OR RELIANCE ON ANY INFORMATION PROVIDED HEREIN. The information is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into
any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality
described for Oracles products remains at the sole discretion of Oracle. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Oracle Magazine (ISSN 1065-3171) is published bimonthly with a free subscription price by: Oracle, 500 Oracle Parkway, MS OPL-3A, Redwood City, CA 94065-1600. Periodicals Postage Paid at Redwood City,
CA, and additional mailing offices. POSTMASTER: Send address changes to: Oracle Magazine, P.O. Box 1263, Skokie, IL 60076-8263.
Printed by Brown Printing
RESOURCES
Oracle Products
+1.800.367.8674 (US/Canada)
Oracle Services
+1.888.283.0591
Oracle Press Books
oraclepressbooks.com
EDITORIAL
Editor in Chief Tom Haunert tom.haunert@oracle.com
Managing Editor Jan Rogers jan.rogers@oracle.com
Senior Editor Caroline Kvitka caroline.kvitka@oracle.com
Associate Editor Patty Waddington
Contributing Editor and Writer Blair Campbell
Technology Advisor Tom Kyte
Contributors Fred Sandsmark, Rich Schwerin, Leslie Steere
DESIGN
Senior Creative Director Francisco G Delgadillo
Senior Design Director Suemi Lam
Design Director Richard Merchn
Contributing Designers Jaime Ferrand, Arianna Pucherelli
Production Designers Sheila Brennan, Kathy Cygnarowicz
PUBLISHING
Publisher Jennifer Hamilton jennifer.hamilton@oracle.com +1.650.506.3794
Associate Publisher and Audience Development Director Karin Kinnear karin.kinnear@oracle.com +1.650.506.1985
ADVERTISING SALES
President, Sprocket Media Kyle Walkenhorst kyle@sprocketmedia.com +1.323.340.8585
Western and Central US, LAD, and Canada, Sprocket Media Tom Cometa tom.cometa@oracle.com +1.510.339.2403
Eastern US and EMEA/APAC, Sprocket Media Mark Makinney mark.makinney@sprocketmedia.com +1.805.709.4745
Advertising Sales Assistant, Sprocket Media Cindy Elhaj cindy@sprocketmedia.com +1.626.396.9400, x201
Mailing-List Rentals Contact your sales representative.
EDITORIAL BOARD
Ian Abramson, Karen Cannell, Andrew Clarke, Chris Claterbos, Karthika Devi, Kimberly Floss, Kent Graziano,
Taqi Hasan, Tony Jambu, Tony Jedlinski, Ari Kaplan, Val Kavi, John King, Steve Lemme, Carol McGury,
Sumit Sengupta, Jonathan Vincenzo, Dan Vlamis
MJ14_TOC.indd 4 3/28/14 2:48 PM
Learn more and download a free trial at www.altova.com/server
Manage Information Workfows
with Altova

FlowForce

Server
Introducing FlowForce Server, the powerful
new platform for automating todays multi-step,
enterprise-level data mapping, transformation,
integration, and reporting tasks. This fexible workfow orchestration tool
works with any combination of XML, database, fat fle, EDI, Excel, XBRL,
and/or Web service data common to many essential business processes.
FlowForce

Server for orchestrating


events, triggers, and the automation
of processes
MapForce

Server for automating


any-to-any data mapping and
aggregation processes
StyleVision

Server for automating


business report generation in HTML,
PDF, and Word
RaptorXML

Server for hyper-fast


validation/processing of XML, XBRL,
XSLT, and XQuery
FlowForce Server is at the center of
Altovas new line of cross-platform
server products optimized for todays
high-performance, parallel computing
environments:
StyleVision Server
HTML, PDF, Word,
OOXML, RTF
MapForce Server
XML, SQL DBs,
EDI, flat files,
XBRL, Web services
RaptorXML
Server
XML and XBRL
validation/processing
FlowForce Server
Job triggers
User management
Access control
#networkfacts
2014 Brocade Communications Systems, Inc. All Rights Reserved.
3 alerts/mo. Text STOP to end. Text HELP for help.
Message and data rates may apply.
THE NETWORK MUST TRANSFORM.
By implementing Brocade Gen 5 Fibre Channel SAN fabrics into your flash storage environment,
you can reduce application latency for your entire organization by 50%. This boosts your overall
network performance and helps meet the stringent application workload requirements placed
on the network by critical data center applications.
Get the facts: text ORACLE to 99158
brocade.com/oraclepartner
HELLO
LOW
LATENCY.
7 FROM THE EDITOR
ORACLE MAGAZINE MAY/JUNE 2014
A Foundation for Business
Oracle Cloud Application Foundation technologies
underpin business in the cloud.
A
buildings foundation doesnt often get
much attention, except during initial
construction, during remodeling, or when
something goes wrong. Likewise, founda-
tion technologies under business applica-
tions may not be the focus of attention after
applications are deployed, but an applica-
tion foundation is at least as critical to its
applications as a building foundation is to
the building it supports.
BUILDING FOUNDATIONS
In 2012 and 2013 I watched (and listened
to) demolition of a city-block-long building
and construction of a new onecontaining
several dozen apartments and a grocery
storea block from my home. There were
many obvious events and milestones during
construction as new floors were built up and
enclosed, windows and doors were added,
exterior siding and trim were added, and so
on. But to me and to the neighbors I spoke
with, the biggest events and milestones
occurred early in the construction process,
when the foundation and multiple under-
ground levels of the building were laid out and
concrete was poured. On those days, dozens
of cement trucks circled the blocks around the
building site. Each would quickly unload and
just as quickly be replaced by the next cement
truck in line. I tip my hat to all the people who
organized, managed, and executed the work,
for the finished result and also because street
traffic was still moving pretty well while these
massive operations were under way.
BUSINESS FOUNDATIONS
This issues cover feature, Ground Control
(page 28), explores how three organizations
used Oracle Cloud Application Foundation
technologies to build, rebuild, repair, and
shore up their own business application
foundations. The article describes the need
for organizations to realize the benefits and
efficiencies of cloud computing, such as the
on-demand access to a shared pool of con-
figurable computing resources, while at the
same time deploying modern applications
on a flexible, integrated, and standards-
based transactional foundation.
Flexible foundation may sound like an oxy-
moron, but flexibility is a core tenet of cloud
computing, and the ability to support inte-
grated public and private cloud applications
and handle increased transaction workloads
resulting from server and software consoli-
dation most certainly requires a solid tech-
nology foundation. Ground Control focuses
on how organizations are using core Oracle
Cloud Application Foundation technologies,
including Oracle WebLogic Server and Oracle
Coherence, as well as Oracle Exalogic, the
integrated hardware and software platform
for the Oracle Cloud Application Foundation
family, to create truly flexible foundations to
support their current and future cloud appli-
cation needs.
OPEN, SAYS ORACLE
Registration for Oracle OpenWorld
2014 in San Francisco, California, is now
open! Register at oracle.com/openworld.
(Coincidently, a major expansion of Moscone
Center, the Oracle OpenWorld San Francisco
host venue, is also planned to begin in 2014.
Current remodeling plans call for the square
footage to be increased by about 20 percent.)
Tom Haunert, Editor in Chief
tom.haunert@oracle.com
LEARN more about
Oracle Cloud Application Foundation
oracle.com/us/products/middleware/
cloud-app-foundation
WATCH Getting Started with the Oracle
Java Cloud Service
bit.ly/1dk38k3
REGISTER for Oracle OpenWorld
oracle.com/openworld
NEXT STEPS
CONNECT: bit.ly/aVgo69 bit.ly/orclmagfb twitter.com/oraclemagazine linkd.in/orclmag
Send your opinions about what you read in Oracle
Magazine, and suggestions for possible technical
articles, to opubedit_us@oracle.com. You can
also follow our @oraclemagazine Twitter feed or
join us on Facebook at bit.ly/orclmagfb.
Letters may be edited for length and clarity and
may be published in any medium. We consider
any communications we receive publishable.
SEND MAIL TO THE EDITORS
Did You Know?
Record Foundation
In 2014, a crew in Los Angeles, California, set a
new world record for the largest continuous
concrete pour as part of the process of laying the
foundation for the new Wilshire Grand Center.
bit.ly/1lhMXGB
MJ14_Ednote.indd 7 3/28/14 2:55 PM
8
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
MashUp
News. Views. Trends. Tools.
Nearly 75 percent of executives say they lose
interest within one minute if a presenta-
tion doesnt have a clear point, and some
43 percent abandon complicated or lengthy
e-mails within 30 seconds. One thousand execs participated
in the online survey. Source: BRIEF Lab, thebrieflab.com
E
X
T
R
A
O
R
D
I
N
A
R
Y

C
O
M
M
U
N
I
C
A
T
I
O
N
SYour smartphones built-in communications apps may not be the best. These
alternatives offer additional features and capabilities.
Tired of bringingand hauling
many pounds of backup batteries
for your off-the-grid adventures?
The hydrogen-powered Upp fuel
cell delivers off-the-grid USB
charging power for smartphones, tablets, cameras, and other elec-
tronics. Measuring just 5 inches (124.5 mm) long and weighing
less than 1.5 pounds (including the exchangeable hydrogen car-
tridge), Upp is rated at 5 watts (one fuel cartridge provides 25
watt-hours of charging capacity) and the companion app monitors
fuel level and usage. US$199. beupp.com
Fuel Cell for Your Pocket
Source: Omnico Group,
omnicogroup.com
Telegram
This secure, speedy
messaging app
offers group chats
with up to 100
people, photo and
video sharing,
and unlimited
cloud storage of
messages. Free
(Android, iOS).
telegram.org
UrgentCall
Even if your phones
in silent, do-not-
disturb mode,
this app can get
an emergency
message to you
but only from callers
youve preselected,
who must prove a
situation is truly
important. US$24
per year plus
airtime (Android).
urgentcalltech.com
Viber
Make HD voice calls
and video calls and
send texts between
smartphones,
computers
(Windows, Mac,
or Linux), and
landlines. Transfer
and sync calls and
messages. Free
(Android, iOS,
Windows Phone,
BlackBerry).
viber.com
Voxer
Instantly
communicate
with this push-to-
talk walkie-talkie
appone-on-one
or with groups. (If a
contact isnt online,
your message will
play back later.)
Free; pro version for
US$2.99/month
(Android, iOS,
Windows Phone).
voxer.com
Low-Key Home
Security
Yes, video cameras are great monitoring tools for home
security, but how do you know when to look at the camera
feeds? The Canary is an unobtrusive wireless home secu-
rity device that bundles a camera, a microphone, a motion
detector, and a variety of sensors in a package about the
size and shape of a large soup can. Connect Canary to your
home WiFi, and it sends alerts to your smartphone when
somethings amissstrange sounds, unexpected motion (it
learns over time when youre home and not), temperature
or humidity spikes, and so on. From the companion app
you can listen (or talk) to a room, check the camera, set off
Canarys built-in siren, and more. US$199. canary.is
US Consumer In-Store Smartphone Usage
Use smartphone when shopping
Compare prices
Browse rival sites while in store
Read reviews
Buy on other retailer sites
18-24
age group
25-34
age group
General US
population
The ways US consumers use smartphones when shopping in stores varies by age.
The 2534 age group was most aggressive in comparing prices and buying
elsewhere. One thousand US residents were surveyed online.
When We Talk, When We Text
One thousand smartphone users between
18 and 65 in the continental US were asked
in what situations they prefer to talk (and
receive or leave voicemail) versus text.
TALK
Personal,
emotional,
connected
Sharing bad news
80% are more likely
to use voice rather
than text-based
messaging when
sharing bad news
Communicating
with a customer
74% prefer to
receive news from
businesses via
voicemail rather
than by text-based
messages
An emergency
57% say its per-
fectly acceptable
to leave a voicemail
when making an
emergency call
TEXT
Immediate,
concise,
convenient
Sharing good
news 66% prefer
to receive news
from a close friend
via text-based
message rather
than by voicemail
Getting in touch
with a significant
other 62% of
males prefer to
receive text-based
news from their
significant others
rather than through
voicemail
Convenience 85%
find text-based
messages more
convenient than
voicemails
Source: Nuance Communications, nuance.com
WHATS
YOUR
POINT?
73%
69%
49%
61%
53%
40%
57%
50%
36%
51%
48%
32%
26%
22%
14%
MJ14_MashUp.indd 8 3/27/14 2:47 PM
HowMonitoringSystems Reduce
Human Error in DistributedServer
Rooms andRemote WiringClosets
White Paper 103
Revision 0
by Dennis Bouley
Contents
>Executive summary
Reduce human-error downtime, too!
Get guidance in our FREE white paper and
enter to win a Samsung Galaxy Note

3!
Visit: www.apc.com/promo Key Code: h408u
The foundation of business network uptime.
APC by Schneider Electric Smart-UPS units
protect 24/7/365 network availability.
Intelligent battery backup
> Avoid costly power problems by keeping your IT
equipment and data safe and available with network-grade
power conditioning.
> Reduce operating and maintenance costs with a patented
green operating mode for high efficiency and intelligent
battery management that prolongs life and alerts well in
advance of replacement.
> Save time with easy and convenient remote accessibility,
safe operating system shutdown, and innovative
energy management.
> Achieve smarter productivity by tailoring a variety
of settings, including switched outlet control, to your
application needs via the intuitive LCD interface or software.
Safeguarding critical networking switches and routers
Your business depends on your business network. Protecting that network,
therefore, is more critical than ever. Known for their reliability for over 25 years,
APC

by Schneider Electric Smart-UPS

uninterruptible power supplies


eliminate costly downtime by providing reliable, network-grade power over a
wide range of utility conditions. They keep employees connected to business-
critical applications whether they are in house, at a co-location facility, or in
the cloud.
A Smart-UPS model for every need
Whatever your IT needs and configuration, we have the right Smart-UPS
model. The family offers multiple form factors (tower, rack optimized, and
rack/tower convertible) to deliver flexibility for any environment. And you
can scale runtime to business requirements. In addition, you can proactively
manage the network closet remotely and optimize energy use through a
patented green mode on many models. Deployment is easy with optional
Schneider Electric installation services. Smart-UPS backup units: the
intelligent choice for your business network!
Business-wise, Future-driven.

2014 Schneider Electric. All Rights Reserved. Schneider Electric, APC, Smart-UPS, and Business-wise, Future-driven are trademarks owned by
Schneider Electric Industries SAS or its affiliated companies. All other trademarks are the property of their respective owners.
www.sohne|der-e|eotr|o.oom 998-1209036_S_Note3
11 EVENTS
ORACLE MAGAZINE MAY/JUNE 2014
Technology Events
Conferences and sessions to help you stay
on the cutting edge
Cloud Expo
June 1012, New York, New York
f
cloudcomputingexpo.com
Leading cloud and big data experts and solution
providers offer technical and strategic breakout
sessions, industry keynotes, panel sessions, and
an expo floor with two demonstration theaters.
Interact 2014
June 2225, Orlando, Florida
f
bit.ly/1jquUwX
This conference for Healthcare Industry
User Group members features more than
70 sessions on using Oracle Applications
in healthcare environments. More than 525
professionals representing 90 organizations
will attend.
ODTUG Kscope
June 2226, Seattle, Washington
f
kscope14.com
ODTUGs annual gathering includes content for
developers, administrators, and business users
on developer toolkit essentials, Oracle Essbase,
Oracle Application Express, Oracle Business
Intelligence, Oracle Application Development
Framework and Oracle Fusion Applications
development, Oracle Database, and more.
SAM Summit
June 2325, Chicago, Illinois
f
samsummit.com
Software asset management (SAM) profes-
sionals gather for 60 sessions devoted to SAM
best practices. Education sessions on Oracle
software license management are offered.
berConf
June 2427, Denver, Colorado
f
uberconf.com
The evolving Java ecosystem is the subject for
160 technically focused sessions, including
more than 25 hands-on workshops.
NACUBO Annual Meeting
July 1922, Seattle, Washington
f
bit.ly/1ghm94M
The National Association of College and
University Business Officers (NACUBO)
convenes for educational sessions, regional
breakout meetings, and training opportunities.
OAUG Connection PointAppsTech
July 2223, Pittsburgh, Pennsylvania
f
connectionpoint.oaug.org
Sponsored by the Oracle Applications Users
Group, this low-cost, high-impact seminar is
designed for technologists who support Oracle
E-Business Suite.
ORACLE USER GROUPS
DOAG (German Oracle User Group)
Meeting
June 34, Dsseldorf, Germany
bit.ly/1eO23iL
UKOUG Public Sector Applications
SIG Meeting
June 5, Solihull, England
ukoug.org
Oracle User Group Finland
Summer Conference
June 56, Espoo, Finland
ougf.fi
New England Oracle Applications
User Group Conference
June 9, Worcester, Massachusetts
neoaug.org
OUG Scotland
June 1112, Linlithgow, Scotland
ukoug.org
UKOUG Hyperion SIG
June 12, London, England
ukoug.org
Georgia Oracle Users Group Meetings
June 12 and July 10, Atlanta, Georgia
gouser.org
Bulgarian Oracle User Group
Spring Conference
June 1315, Sandanski, Bulgaria
bgoug.org
Austrian Oracle User Group Conference
June 17, Vienna, Austria
aoug.at
Central States Oracle Application
Users Group Workshop
June 17, Kansas City, Missouri
csoaug.com
DOAG (German Oracle User Group)
SAP SIG Meeting
June 30, St. Leon-Rot, Germany
xing.com/net/doag
UKOUG Partner Forum
July 10, London, England
ukoug.org
Java Forum Stuttgart
July 17, Stuttgart, Germany
jugs.org
UKOUG Public Sector HCM Customer
Forum and Workshop
July 17, Solihull, England
ukoug.org
Southwest Regional Oracle Applications
User Group Meeting
July 25, Irvine, California
sroaug.com
G
E
T
T
Y

I
M
A
G
E
S
Oracle Events
oracle.com/events
Oracle User Group Events
oracle.com/us/corporate/customers/user-groups
EVENTS LOCATOR
Oracle HCM Users
Group (OHUG) Global
Conference
June 913, Las Vegas, Nevada
More than 1,600 Oracle Human Capital Management
(Oracle HCM) users learn more about the products
they use and meet Oracle development experts.
Speakers, training, special interest groups, partner
and expert sessions, and networking opportunities
are planned. ohug.org/global-conference-2014
MJ14_Events.indd 11 3/27/14 2:55 PM
12
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
RESOURCES
CONNECT: oracle.com/blogs facebook.com/oracle twitter.com/oracle linkedin.com/company/oracle bit.ly/LdGiM0
Whats New at Oracle
The latest videos, webcasts, white papers, and more
VIDEOS
MySQL Workbench and MySQL Enterprise
Online Backup Tutorial
f
bit.ly/NaOu30
MySQL experts walk through the MySQL
Workbench online backup interface.
Revolutionizing Server Economics
f
bit.ly/1dmNuxF
Find out how the near-linear pricing of Oracles
new SPARC M6 and SPARC T5 systems revolu-
tionizes system economics.
Access Oracle Database 12c Innovation with
Premier Support
f
bit.ly/1eC4uE7
Tom Kyte highlights the latest features of and
enhancements to Oracle Database 12c that are
available to Oracle Premier Support customers.
WEBCASTS
Simplify Enterprise Mobility
f
bit.ly/1nJf9l4
Oracle experts discuss the current state of enter-
prise mobility and how Oracles mobile solutions
help enterprises embrace mobile technologies.

Simplify Integration with Oracle Cloud
Adapter for Salesforce.com
f
bit.ly/1fpLtUb
Learn how Oracle Cloud Adapter for Salesforce
.com alleviates the complexity and risks of running
a mix of on-premises and cloud applications.
Pella Revolutionizes the Digital Experience
for Customers, Partners, and Employees
f
bit.ly/1fYmCsn
Find out how technology enables continuous
improvement throughout the manufacturing and
sales cycles at Pella.
CALCULATORS
Oracle VM Cost Calculator
f
bit.ly/MTrgyj
See how you can drive cost savings with the com-
bined Oracle VM and Oracle Linux products.
E-BOOKS
Consolidate Your Applications on Oracle
WebLogic Server
f
bit.ly/LJcGZb
Learn from Oracle WebLogic customers how
consolidating on the latest release gave them
better runtime capabilities and increased
efficiency, for both traditional data center and
cloud operations.
Meeting the Challenge of Big Data: Part Two
f
bit.ly/1d5RfZe
Discover how Oracles engineered systems and big
data analytics can help your business derive new
value from big data.
Why Oracle Database Runs Best on Oracle
Servers and Storage
f
bit.ly/1fCs9Fo
Learn how running Oracle Database with Oracles
latest hardware and storage can improve perfor-
mance, reduce costs, and enhance reliability.

WHITE PAPERS
Top 10 Data Warehousing Trends and
Opportunities for 2014
f
bit.ly/MqqSXj
Read highlights of the major trends, problems, and
breakthroughs in data warehouse technology.
Data Security: Leaders vs. Laggards
f
bit.ly/1bWbb0b
Learn about the top security risks organizations
face, what characterizes a security leader, and the
risks associated with falling behind.
Top 10 Reasons to Choose MySQL for
Online Retail
f
bit.ly/1bO9HbE
Learn why MySQL is a top choice to power online
retail applications.
RESOURCE CENTERS
Oracle VM Private Cloud Resource Kit
f
bit.ly/1cOkROx
Download white papers, podcasts, and analyst
reports to learn how integration between Oracle
VM and Oracle Enterprise Manager enables faster
and easier migration to private cloud.
Oracle Data Integrator 12c Resource Kit
f
bit.ly/1fCxAEv
Access the latest technical information and
product roadmaps, as well as white papers and
customer and partner success stories.
PODCASTS
Orient Overseas Container Line Touts the
Benefits of Oracle WebLogic 12.1.2
f
bit.ly/1alCHJ7
Hear about topics such as hot caching; Maven
support for developer productivity; and unified
installation, configuration, and patching.
ORACLE UNIVERSITY
Training for Cloud Computing
f
bit.ly/1etCZgE
Get the skills to build, manage, use, and evolve
your Oracle cloud solution.
Solaris 11 System Administration Training
f
bit.ly/1bkPkzz
Learn to install, administer, maintain, and trouble-
shoot the Oracle Solaris 11 operating system.
Oracle Consulting
oracle.com/consulting
Oracle Events and Webcasts
oracle.com/events
Oracle Newsletters
oracle.com/newsletters
Oracle Podcast Center
oracle.com/podcasts
Oracle University
bit.ly/ouoramag
Oracle Support
oracle.com/support
My Oracle Support
myoraclesupport.com
My Oracle Support Communities
communities.oracle.com
WEB LOCATOR
MJ14_Resources.indd 12 3/27/14 3:10 PM
Since 1985, Melissa Data has provided
the tools developers need to enhance
databases with clean, correct, and
current contact data. Our powerful, yet
affordable APIs and Cloud services
provide maximum flexibility and ease
of integration across multiple
platforms, including .NET, Java, C,
C++, Unix, Windows, Oracle, and SQL
Server. Build in a solid framework for
data quality and protect your
investments in data warehousing,
business intelligence, and CRM.
A better way to build
in data verification
Verify addresses, phones &
emails for over 240 countries
Add phones, emails, geocodes
& demographics
Find, match, and eliminate
duplicate records
Move update services keep
your contact data current
Free trials with 120-day ROI
guarantee
Melissa Data.
Architecting data quality success.
Data Quality Tools
for Developers
www.MelissaData.com 1-800-MELISSA
Address
Verification
Email
Verification
Matching/
Deduplication
Geocoding
Phone
Verification
Change of
Address
C
M
Y
CM
MY
CY
CMY
K
oracle-tooltime-mar12-fullpage.pdf 1 3/12/2014 4:03:59 PM
14 Product Resources
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
TUTORIALS AND VIDEOS
Oracle Database 12c: Advanced
Security Video Series
Watch this three-part video series to learn
about Oracle Advanced Security in Oracle
Database 12c, including data redaction and
transparent data encryption.

bit.ly/1gfepRE
Oracle Database Quickstart
Take this Oracle by Example tutorial to get
up and running with Oracle Database 12c.

bit.ly/1nC6v6Q
Building a Change Request
Workflow Model
This tutorial demonstrates how to
configure metadata and security for
governance workflows in Oracle Data
Relationship Management.

bit.ly/1cKhdal
Using Virtual Private Database with
Oracle Database 12c
Watch this five-minute video to learn how
to implement a security policy using the
application context functionality of Oracle
Database 12c.

bit.ly/1crl23Z
Integrating Apache Hadoop with
Oracle NoSQL Database
With this tutorial, learn about the benefits
of integrating Apache Hadoop with Oracle
NoSQL Database, including the role of the
Hadoop framework in big data, the NoSQL
APIs used to load data into Hadoop, and
the steps for connecting Oracle NoSQL
Database with Hadoop.

bit.ly/OeG7DB
DOWNLOADS
Oracle SQL Developer 4.0.1
Release 4.01 of Oracles free integrated
development environment includes a full
interface for Oracle Database, Enterprise
Editions diagnostics pack; support for
Oracle Database 12c features such as
Oracle Advanced Security data redaction
policy management; and more.

bit.ly/1oGaiPo
Oracle SQL Developer Data
Modeler 4.0.1
New features in Oracle SQL Developer Data
Modeler 4.0.1 include Oracle Database 12c
support for IDENTITY columns and trans-
parent sensitive data protection policies for
sensitive types.

bit.ly/1glxoX0
Oracle Mobile Security Suite: Unified BYOD Security
Oracle Mobile Security Suite, announced
in February 2014, extends Oracles identity
and access management solutions to deliver
an integrated platform from which organi-
zations can manage access to all applica-
tions from all devices, both corporate and
personalincluding laptops, desktops, and
mobile devices.
Available as a standalone product or
integrated out of the box with Oracle Mobile
Suite, Oracle Mobile Security Suite takes
an application- and user-centric approach
that enables IT to efficiently and securely
administer and manage access, providing a
secure workspace that makes it possible for
companies to separate and protect enter-
prise applications and data and enforce
policy while preserving the privacy of users
personal applications and content on the
same device.
Oracle Mobile Security Suite brings the
strength of Oracles identity management
platform to mobile devices, and as a result
helps organizations address the BYOD [bring
your own device] challenge with a logical
approach, says Amit Jasuja, senior vice
president of identity management and secu-
rity at Oracle. By extending security and
access capabilities to mobile devices, orga-
nizations can protect
corporate resources
on employee devices
without compro-
mising the user
experience.
bit.ly/1eamDX7
Enterprise Performance Management for Cloud
Oracle has announced the general availability
of its first enterprise performance manage-
ment (EPM) solution offered in the cloud,
Oracle Planning and Budgeting Cloud Service.
Oracle Planning and Budgeting Cloud
Service opens up opportunities for organi-
zations of all sizes to quickly adopt a world-
class planning and budgeting solution
with no CapEx infrastructure investments.
The EPM cloud service builds on the robust
functionality of Oracle Hyperion Planning,
which includes agile forecasting and rich sce-
nario analysis, incorporating cloud-specific
enhancements that accelerate deployments,
speed adoption, and simplify administration.
Weve seen a tremendous interest in
adopting cloud-based solutions to stream-
line budgeting and improve forecasting,
says Hari Sankar, vice president of product
management at Oracle. Oracle Planning
and Budgeting Cloud Service reflects our
commitment to helping organizations of all
sizes harness world-class enterprise perfor-
mance management in the delivery model
of their choice, says Sankar.
bit.ly/O2P0js
Enhanced Apps for Oracle Utilities
Oracle has announced new releases for two
Oracle Utilities applications.
Oracle Utilities Analytics 2.5 introduces
new prebuilt analytical and operational
dashboards to enable utilities to more effec-
tively respond to storms, improve smart grid
device management, and provide more-
efficient customer operations.
Oracle Utilities Network Management
System 1.12 adds new functionality to help
utilities reduce operational costs, gain
process efficiencies, and improve customer
satisfaction. Additions include a network
management training simulator, conserva-
tion voltage reduction functionality, and
enhanced damage assessment functionality.
Oracle Utilities Analytics 2.5 provides
utilities with prebuilt analytics that enable
them to gain immediate insights into the
vast amount of data they bring in from
smart meters and smart grid deploy-
mentsto completely transform the cus-
tomer experience, now and into the future,
says Rodger Smith, senior vice president
and general manager for Oracle Utilities.
And, he says, new functionality in Oracle
Utilities Network Management System 1.12
enable[s] utilities to accelerate service
issue resolution and provide the visibility to
optimize infrastructure, customer support,
and field response teams.
bit.ly/MUCrWp I
-
H
U
A

C
H
E
N
MJ14_Briefs.indd 14 3/27/14 3:26 PM
15 BRIEFS
ORACLE MAGAZINE MAY/JUNE 2014
I
-
H
U
A

C
H
E
N
Oracle Cloud Adapters Simplify Integration Between Cloud and
On-Premises Applications
Oracles recently announced Oracle
Cloud Adapters help organizations easily
integrate applications regardless of
deployment locationin the cloud or on
premises. Oracle Cloud Adapters cut devel-
opment time by reducing the number of
manual and customized steps and are sup-
ported by Oracle SOA Suite, the industrys
most complete and unified application
integration solution.
This unified integration approach
between on-premises and cloud applica-
tions reduces the
time, cost, and
complexity of appli-
cation integration
projects and helps
customers lower total
cost of ownership
by simplifying integration, consolidating
toolkits, and reducing maintenance
costs. The new Oracle Cloud Adapter for
Salesforce.com, for example, can reduce
integration development time by half when
compared to traditional methods by dra-
matically reducing the number of manual
and customized steps.
Until now, organizations have relied on
a mix of integration tools, each focusing
on either cloud or on-premises applica-
tions, says Demed LHer, vice presi-
dent of product management at Oracle.
With Oracle Cloud Adapters, Oracle has
extended our commitment to simplifying
and securing key applications by unifying
the integration experience between cloud
and on-premises applications.
bit.ly/1fQcUEZ
Oracle HCM Cloud Updates
Oracle has unveiled significant updates
to its cloud-based solutions for managing
and optimizing the end-to-end employee
lifecycle. The latest version of Oracle Human
Capital Management Cloud (Oracle HCM
Cloud) offers more than 200 innovations,
including comprehensive modeling func-
tionality for testing large-scale changes and
new social sourcing
features for tapping
the power of social
networks.
To be nimble
and competitive in a
global and connected
world, organizations
constantly need new and smarter ways to
harness the best talent, says Gretchen
Alarcon, group vice president for product
strategy at Oracle. The latest updates to
Oracle HCM Cloud promote a more collab-
orative, mobile, and engaging experience for
global HR management, leading organiza-
tions to take a more strategic approach to HR
and better capitalize on their talent.
bit.ly/1gfjUMh
Oracle Marketing Cloud Adds Capabilities, Industry Solutions
Oracle has announced several new features
and enhancements as well as two industry
solutions for Oracle Marketing Clouds Oracle
Eloqua Marketing Cloud Service product line.
The new release of Oracle Eloqua
Marketing Cloud Service extends support for
modern marketing with new content mar-
keting applications that enhance collabora-
tion, delivery, and measurement of content
marketing programs; enhanced Oracle
Eloqua AppCloud development capabili-
ties; and expanded integrations with Oracle
Sales Cloud and Oracle Social Cloud.
With the latest release of Oracle Eloqua,
Oracle is extending the industrys most
comprehensive marketing cloud and giving
marketers an unparalleled ability to deliver
a customer experience that drives revenue,
says John Stetic, vice president of product
management for Oracle Marketing Cloud.
The features and enhancements will better
enable modern marketers to quickly iden-
tify potential customers and optimize their
digital interactions across the customer
lifecycle, from initial acquisition to cus-
tomer advocacy.
In addition, Oracle has added to the
growing list of industry-specific solutions
for Oracle Eloqua Marketing Cloud Service
with solutions for wealth management and
life sciencesflexible, cloud-based Oracle
Marketing Cloud solutions designed to
address the unique marketing challenges
faced by those specific industries. Additional
industry-specific solutions include Oracle
Eloqua Marketing for Entertainment
Cloud Service, Oracle Eloqua Marketing for
Insurance Cloud Service, and Oracle Eloqua
Marketing for Nonprofit Cloud Service.
bit.ly/NGD4UL
Oracle Social Cloud Launches Open API Strategy for Paid Media
Oracle has launched an open API-based paid
media solution for Oracle Social Cloud to
deliver customers more choice and ongoing
expertise for paid social media capabilities.
We believe this is the best solution to
meet our customers needs to leverage
performance-based, data-driven, tar-
geted advertising at scale, says Meg Bear,
group vice president, Oracle Social Cloud.
Through our open API strategy, we can
work with leaders in the business and
provide our customers a choice in their
social advertising technology options.
bit.ly/1hu95Ic
Oracle Buys BlueKai
Oracle has signed an agreement to acquire
BlueKai, the industrys leading cloud-
based big data platform. Oracle plans to
integrate BlueKai technology with Oracle
Customer Experience Cloud marketing and
social solutions for B2C and B2B marketing
automation to deliver orchestrated and per-
sonalized customer interactions across all
marketing activities and channels.
Modern marketers require new ways
of acquiring, centralizing, interpreting, and
activating customer data across marketing
channels so that they can enhance the
customer experience and maximize the
return on their marketing spend, says
Steve Miranda, executive vice president
for applications development at Oracle.
The addition of BlueKai to Oracle
Marketing Cloud enables marketers to act
on data across both known customers and
new audiences and precisely target cus-
tomers with a personalized message
across all channels.
bit.ly/1dzQ0oN
MJ14_Briefs.indd 15 3/27/14 3:26 PM
Copyright 2014, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.
oracle.com/partners/goto/exastack
ISV Apps
Run Better
on Exadata
Over 700 ISV Applications Are Certified on Exadata
30x Lower CPU Utilization
6x Less Storage Used
90% Linear Scalability
70:1 Compression
30x More Scalable
17 INTERVIEW BY CAROLINE KVITKA
ORACLE MAGAZINE MAY/JUNE 2014
T
he latest release of the Java platform,
Java 8, is a significant upgrade,
undertaking a coordinated coevolution of
the virtual machine (VM), core language,
and libraries. Caroline Kvitka sat down
with Nandini Ramani, vice president, Java
Platform and Internet of Things, at Oracle,
to find out whats new in Java 8, which
encompasses Java Platform, Standard
Edition 8 (Java SE 8) and Java Platform,
Micro Edition 8 (Java ME 8). The following is
an excerpt from that interview; listen to the
full interview at oracle.com/magcasts.
Oracle Magazine: In a recent Java Magazine
article, Chief Java Architect Mark Reinhold
called Java 8 revolutionary. What are
the top features that make it such a game
changer for Java developers?
Ramani: Java SE 8 is a big step forward in
modernizing the Java language as well as
modernizing the Java libraries. Its the
biggest upgrade ever to the Java program-
ming model, and it includes several new
features, including lambda expressions
and default methods; a new date and time
API; Nashorn, the JavaScript engine; and
compact profiles.
Oracle Magazine: What are lambda expres-
sions, also known as closures, and why have
they gotten so much attention?
Ramani: Good programming is about
finding the right abstractions, and Java
has always been very good at helping us
abstract over data. But one area where we
saw we could improve was in abstracting
over behavior, such as allowing developers
to effectively say do this for every matching
element of this collection, and then do
that when youre done. Lambdas are that
missing tool for describing these snippets
of behavior, and being able not just to pass
around data from one method to another,
but also to pass around behavior. This was
possible to some degree with anonymous
interclasses, but it was just too unwieldy
and required too much boilerplate code.
While lambdas enable developers to sim-
plify the code they write every day, the key
benefit comes in when they are combined
with new aggregate operations on collec-
tion APIs that have also been introduced in
Java SE 8. This is really importantits the
combination of language and libraries that
makes lambdas such a huge step forward.
Lets take an example. The new stream
libraries in java.util illustrate how it is now
possible to take a more functional approach
to code in Java, which can make code more
compact and less error-prone, by allowing
the programmer to focus on the what of
the problem being solved without getting
bogged down in the details of how. One
way this approach pays off is that we can
now write code that need not be inher-
ently serial or parallel, but can switch from
sequential to parallel execution without
having to rewrite the whole thing. If the
user asks for a parallel execution, the library
takes care of partitioning, task decom-
position, and thread scheduling, leaving
the user free to focus on the what of the
problem they are solving. And this is just
one of the many benefits enabled by this
style of programming.
Oracle Magazine: Do users have to switch
to new libraries in order to benefit from
these abilities?
Ramani: No, because this illustrates the
benefit of the other key new language
feature of Java SE 8, called default methods,
which is a mechanism that allows existing
libraries to evolve to gain new functionality
over time, without breaking backward com-
patibility. We added these features to the
collection libraries Java developers already
use every day.
Oracle Magazine: So do lambdas change the
way developers do their day-to-day jobs?
Ramani: Absolutely, and hopefully at
multiple levels. At the simplest level, their
code can be more compact, but when
combined with the libraries like the stream
library I described above, developers will
be able to write code that is simpler and
more maintainableas well as gaining the
benefit of easier parallelism. I wish I had
this back when I used to program!
Nandini Ramani, Vice President, Java Platform and
Internet of Things, Oracle B
O
B

A
D
L
E
R
/
G
E
T
T
Y

I
M
A
G
E
S
Were unifying
the language, the
platform, and
APIs as well as
modernizing the
Java language
and libraries.
Innovate with Java 8
Latest platform release enhances developer productivity
and supports applications from the Internet of Things
to the cloud.
MJ14_Interview_R1.indd 17 4/8/14 11:12 AM
18 INTERVIEW
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
Oracle Magazine: What is significant about
the new date and time API?
Ramani: The new date and time API reduces
the complexity for developers when han-
dling date and time, especially when having
to cope with internationalization and local-
ization for different markets. While Java has
always had an API for dates and times, the
existing library is more than 15 years old; it
was time to re-engineer it from the ground
up using modern design practices.
Oracle Magazine: What about Nashorn?
Ramani: Project Nashorn is a rewrite from
scratch of the JavaScript engine included
with the Java platform. When developers
want to use both Java and JavaScript,
Nashorn can deliver significant perfor-
mance improvements and interoperability
between Java and JavaScript code.
Oracle Magazine: Java SE and Java ME are
heading toward a convergence. Can you give
us a little background on that and tell us
what steps Java 8 takes toward it?
Ramani: Java ME is the Java platform stan-
dard for resource-constrained and con-
nected devices where the full Java SE may
not be a good fit. It allows Java to address
a wide range of smaller embedded devices
and use cases.
Were converging the language, the
tooling, the libraries, and the APIs. The
alignment between Java ME and Java SE
creates a unified Java development model
and allows code, skills, and tools to be
portable across the Java platform all the
way from small to very large systems. The
large Java ecosystem of more than 9 million
developers and partners can now easily
scale any of their innovations.
Java ME 8 is a significant update of the
Java ME standard and is a major step toward
alignment of Java SE and Java ME. Java ME
now supports most of the modern Java SE 8
language features such as generics, annota-
tions, assertions, enumerations, and multi-
catch. Java ME 8 also supports recent Java SE
VM features and class file versions, allowing
the use of common tooling.
Finally, Java ME 8 adds key Java SE
APIs and libraries such as collections,
events, StringBuilder, logging, and other
APIs and interfaces as well as subsets of
NIO [New I/O].
Oracle Magazine: How do the compact pro-
files, which you mentioned earlier, fit into
the convergence?
Ramani: Compact profiles are a way for
developers to use a well-defined subset
of the Java class libraries for applications
where that is all that is required. So, if youre
just writing a small application, you dont
need to include the entire JRE [Java runtime
environment]. For situations where the size
of the JRE is an issue, this will address those
specific needs.
Oracle Magazine: Speaking of writing small
applications, lets talk about the Internet
of Things [IoT]. What does Java ME offer for
developers who want to build IoT devices?
Ramani: The Internet of Things brings huge
opportunities, but along with it, significant
challenges for software development and
specifically deployment. How do you develop
code efficiently for a wide and fragmented
set of embedded platforms? How do you
ensure robust and secure software execution
under particularly challenging conditions in
most cases?
Typically, embedded software devel-
opment involves specialized skills and
platform-specific tools as well as, in most
cases, low-level native programming.
Because the native programming approach
to embedded software development is
often very fragmented, Java ME 8
is a purpose-built embedded software
standard that provides a consistent and
reliable application platform that shields
developers from the complexity of the
underlying devices. Complexities of oper-
ating systems, device drivers, and so on
are abstracted away, making software
development for embedded systems much
easier. The Java ME 8 runtime is efficient
and highly scalable and allows developers
to move and reuse their applications and
business logic across a wide range of
embedded solutions without having to
recompile or port their applications. So in
the real world this means you can start with
small microcontroller-type devices and go
all the way to more-powerful systems like
gateways and concentrators.
Java ME 8 includes rich and standardized
functionality that is becoming increasingly
required in advanced embedded deploy-
ments such as preintegrated software pro-
visioning and management, a flexible and
robust security model, and standard com-
munication protocols.
Oracle Magazine: What are you most excited
about in terms of Java 8?
Ramani: Were unifying the language, the
platform, and APIs as well as modernizing
the Java language and libraries, so its a
big upgrade for the Java programming
model itself. Additionally, we are keen to
make it simple for developers to write and
deploy applications all the way from small
devices to the data center. Java SE 8 and
Java ME 8 are huge milestone releases
toward that goal.
DOWNLOAD
Java SE 8
bit.ly/OdfU8D
Java ME 8
bit.ly/1lDO7Jw
WATCH the Java 8 launch webcast
bit.ly/1d2IyPL
READ the Java 8 issue of Java Magazine
bit.ly/1krG1E3
NEXT STEPS
Caroline Kvitka is
editor in chief of Java
Magazine and a long-
time contributor to
Oracle Magazine.
While lambdas enable developers to simplify
the code they write every day, the key benefit
comes in when they are combined with new
aggregate operations on collection APIs that
have also been introduced in Java SE 8.
MJ14_Interview.indd 18 3/27/14 3:51 PM
19
ORACLE MAGAZINE MAY/JUNE 2014
PARTNER NEWS Book Beat
I
-
H
U
A

C
H
E
N
Partners Earn Oracle PartnerNetwork Specialized Status
Four Oracle partners have earned Oracle
PartnerNetwork Specialized status for their
solutions. Specialized status is a level of rec-
ognition that spotlights the strengths and
special skills of experienced and committed
Oracle partners.
Branchbird, a big data analytics company
and an Oracle Gold Partner, has achieved
Specialized status for Oracle Endeca
Information Discovery. Branchbird has
experience in practice management,
product management, solution architec-
ture, and product development, and has
successfully delivered customized Oracle
Endeca Information Discovery implementa-
tions incorporating big data.
Mitchell & Associates, an Oracle
Platinum Partner, has achieved
Specialized status for Oracles JD Edwards
EnterpriseOne 9.0 financial management
applications. Mitchell & Associates has
been recognized by Oracle for its expertise
in delivering services related to JD Edwards
EnterpriseOne 9.0 solutions.
NuWave Solutions, an Oracle Gold
Partner, has achieved Specialized status
for Oracle Endeca Information Discovery.
The company turns data into usable infor-
mation by combining the capabilities of
data warehousing, business intelligence,
and analytics.
Redstone Content Solutions, a provider
of content solutions and an Oracle Gold
Partner, has achieved Specialized status for
Oracle WebCenter Sites. Redstone, founded
in 2009, also holds Specialized status for
Oracle Application Development Framework
and Oracle WebCenter Content.
branchbird.com
maa-imcs.com
nuwavesolutions.com
redstonecontentsolutions.com
Aurionpro Becomes Oracle Platinum Partner
Aurionpro, a provider of consulting services
and software for financial services and
supply chain management, has achieved
Oracle Platinum Partner status for its
expertise in delivering Oracle Identity
Management, Oracle Applications, and
Oracle WebCenter. With the status,
Aurionpro receives priority placement in the
Oracle PartnerNetwork solutions catalog,
one free application integration validated by
Oracle, discounted training, and more.
aurionpro.com
Partners Create Oracle Accelerate for Midsize Companies Solutions
Two Oracle partners have created Oracle
Accelerate for Midsize Companies solu-
tionssimple-to-deploy packaged solutions
based on Oracle Business Accelerators.
DAZ Systems, an Oracle Platinum
Partner, has delivered a solution for Oracle
Financials Cloud. The new solution is based
on DAZ Systems FastTrack accelerated
implementation methodology.
CapricornVentis, an Oracle Gold Partner,
has created a solution for Oracle Service
Cloud. Oracle Service Cloud enables retailers
to provide a seamless customer experience
across multiple touchpoints.
www.dazsi.com
capventis.com
Silanis e-SignLive Now Included in Oracle Documaker
Silanis Technology, an Oracle Gold Partner,
has announced that e-SignLive, its elec-
tronic signature
solution, is now
included in Oracle
Documaker. Silanis
e-SignLive within
Oracle Documaker
creates a completely
paperless digital transaction, from genera-
tion to signing to indexing to storage of
electronically signed documents. Electronic
signatures help ensure that documents
are reviewed in the correct order and that
necessary data and signatures are captured,
which can eliminate errors and improve
customer service.
silanis.com
OCP: Oracle Database 12c
Administrator Certified Professional
Study Guide: Exam 1Z0-063
By Robert G. Freeman and
Charles A. Pack
Wiley
wiley.com
Prepare for three levels
of certification with
OCP: Oracle Database 12c
Administrator Certified Professional Study
Guide: Exam 1Z0-063. This guide has
been updated for the Oracle Database 12c
product release. It touches on database
architecture, configuration, and backup and
recovery and includes tips for diagnosing
problems, managing memory, managing
resources, and automating tasks. A work-
book exercise appendix, chapter review
questions, electronic flashcards, search-
able PDF glossary, and two bonus practice
exams enhance your preparation.
Oracle WebLogic Server 12c
Administration Handbook
By Sam Alapati
Oracle Press
oraclepressbooks.com
Designed as a combina-
tion reference and tuto-
rial, Oracle WebLogic
Server 12c Administration
Handbook covers how to install, configure,
manage, and tune Oracle WebLogic Server
12c. Filled with expert management
techniques, detailed examples, and best
practices, it also discusses managing Oracle
WebLogic Server security, understanding
Oracle WebLogic Server application deploy-
ment, working with Oracle WebLogic Server
clusters, and many other topics.
OCA Oracle Database 12c
Installation and Administration
Exam Guide (Exam 1Z0-062)
By John Watson
Oracle Press
oraclepressbooks.com
OCA Oracle Database 12c
Installation and
Administration Exam
Guide (Exam 1Z0-062) is
a mixed-media handbook for preparing for
the Oracle Database 12c Administration I
exam, a required first step toward Oracle
Certified Associate and Oracle Certified
Professional certification. This book and
its related electronic content cover instal-
lation, configuration, application tuning,
database management, backup and
recovery, security, and more.
Look for other Oracle books at bit.ly/NjG3KM.
MJ14_Partner.indd 19 3/27/14 4:02 PM
20
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
PARTNER NEWS
Partners Earn Oracle Validated Integration
Four Oracle partners have earned Oracle
Validated Integration, demonstrating that
their solutions have been certified by Oracle
as functionally and technically sound and
integrated with Oracle Applications in a
reliable, standardized way, and that they
operate and perform as documented.
CARCO Group, an Oracle Gold Partner, has
achieved Oracle Validated Integration for its
I-9 and E-Verify Solution with Oracle Taleo
Enterprise Cloud Service, part of Oracle Talent
Management Cloud. CARCOs electronic I-9
and E-Verify Solution helps employers main-
tain a compliant and legal workforce while
eliminating paper-based processes.
Loftware, a provider of enterprise
labeling solutions and an Oracle Gold
Partner, has achieved Oracle Validated
Integration of Loftware Spectrum with
Oracle E-Business Suite 12.2. Spectrum
features include label design, enterprise
integration, a business rules engine,
device management, and on-demand
native printing.
Scout Exchange, an Oracle Gold Partner,
has achieved Oracle Validated Integration
of Scout with Oracle Talent Management
Cloud. Scout uses performance-based
matching to connect employers with the
most-appropriate recruiters for a specific
job. The solution also lets employers view
and accept qualified candidates based on
placement fees.
Talent Q, an Oracle Gold Partner, has
achieved Oracle Validated Integration of
Talent Q Assessment Systems (Version
2.5.1.3) with Oracle Talent Management
Cloud. Talent Q Assessment Systems is a
multiphased assessment service that can be
embedded into recruitment workflows.
carcogroup.com
loftware.com
goscoutgo.com
talentqgroup.com I
-
H
U
A

C
H
E
N
Peloton Announces
CloudAccelerator Program for
Oracle Planning and Budgeting
Cloud Service
Peloton, an Oracle
Platinum Partner
specializing in
enterprise perfor-
mance manage-
ment and busi-
ness analytics,
has announced the availability of its
CloudAccelerator program for Oracle
Planning and Budgeting Cloud Service.
Peloton, which has achieved Specialized
status for Oracle Hyperion Planning,
designed the CloudAccelerator program to
help its clients achieve faster, driver-based
planning system implementations that
take advantage of the flexibility of Oracles
cloud-based solution.
pelotongroup.com
MJ14_Partner_R1.indd 20 4/8/14 11:19 AM
21
ORACLE MAGAZINE MAY/JUNE 2014
Community Bulletin
Happenings in Oracle Technology Network BY ROLAND SMART
HANDS-ON LAB:
Deploying an Oracle RAC 12c Cluster
How to Deploy a Four-Node Oracle RAC 12c
Cluster in Minutes Using Oracle VM Templates
is a step-by-step tutorial (see bit.ly/1ind7TV)
by Olivier Canonge. With full support for Oracle
Real Application Clusters (Oracle RAC) database deploymentsand
additional support for the Flex Cluster and Oracle Flex Automatic Storage
Management features of Oracle Database 12cthese Oracle VM tem-
plates allow the beginner and savvy alike to deploy and virtualize robust
applications in a matter of minutes.
JOIN THE DISCUSSION AT
IOT COMMUNITY
Oracle Technology Network (OTN) community members
are driving the rapid adoption and proliferation of embed-
ded, intelligent devices. Some are calling this a new age of
machine-to-machine technology, while others prefer the
term Internet of Things (IoT).
At IoT Community (iotcommunity.net), OTN developers
are engaging in lively discussions about the possibilities of
IoT, and sharing examples of how theyre already building
on top of existing technology. Here youll find expert con-
versations and blog posts about how mobile devices can
become high-powered microscope kits; smarter precipita-
tion sensors can improve agricultural yields; digital screen
personalization can improve the retail experience; and more.
Join the conversation at iotcommunity.net.
Oracle ADF
Development: Web,
Mobile, and Beyond
A new OTN video series
shows you how to
simplify your applica-
tion development with
Oracle Application
Development
Framework (Oracle
ADF), an end-to-
end Java Platform,
Enterprise Edition
framework. Explore an
introductory primer on
Oracle ADFs out-of-
the-box infrastructure
services, browse
advanced Oracle ADF
topics, compare dif-
ferent techniques for
creating and extending
enterprise apps for iOS
and Android, or listen in
on Oracle ACE Director
Sten Vesterli (among
other Oracle ACE pre-
senters) as he shares
the Top 10 Secrets of
Successful Oracle ADF
Projects. Or, do it all:
youll find more than
10 how-to video guides
and presentations at
bit.ly/1j94xeR.
Featured Download:
Oracle SQL Developer 4.0
Oracle SQL Developer is a free inte-
grated development environment
that streamlines the development
and management of Oracle Database.
Oracle SQL Developer offers complete
end-to-end development of your
PL/SQL applications, a worksheet for running queries and scripts,
a DBA console for managing the database, a reports interface,
a complete data modeling solution, and a migration platform for
moving your third-party databases to Oracle Database. Download
Oracle SQL Developer 4.0 at bit.ly/1nRwGaX.
Kscope14
ODTUGs
Kscope
is one of the most dynamic
and well-attended confer-
ences for Oracle developers,
administrators, architects, and
business users. This years
conference, Kscope14, takes
place June 2226 in Seattle,
Washington, and it includes
more than 250 technical ses-
sions, more than 20 hands-on
training sessions, and plenty
of networking opportunities. In
addition, Oracle ACE Directors
will be at the ready to answer
your questions: this year
theyll be leading a number of
Kscope14 lunch-and-learn
sessions. Learn more and regis-
ter at kscope14.com.
I
-
H
U
A

C
H
E
N
;

C
O
U
R
T
E
S
Y

O
F

D
H
E
R
R
E
R
A
_
9
6

O
N

F
L
I
C
K
R
MJ14_Community.indd 21 3/27/14 4:44 PM
22
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
ARCHITECT BY BOB RHUBART
CONNECT: blogs.oracle.com/archbeat facebook.com/brhubart twitter.com/brhubart linkedin.com/in/bobrhubart
I
n past issues of Oracle Magazine, this
column has devoted a lot of attention to
how to become an architect and has shared
the insight and expertise of working archi-
tects as they discuss how they have devel-
oped and sharpened the various skills nec-
essary to thrive in that role. But this column
has never addressed one simple, straight-
forward question: Why would anyone want
to be an architect?
The architects I contacted for responses
to that questionmy informal team of
expert advisorswere attracted to the role
because it requires a very specific combina-
tion of highly developed technical skills,
equally well-developed people skills, and a
keen ability to see and grasp the big picture,
all wrapped up in a desire to be an instru-
ment of change.
Oracle ACE Director Lucas Jellema,
solution architect and CTO of AMIS
Technologies, describes the big-picture
focus as both the primary challenge and the
greatest attraction for the role. The mix of
competencies that is required; the potential
impact you have as an architect; and the
constant intellectual challenge of abstract,
high-level, long-term strategic thinking one
moment and very operational, concrete, and
detailed thinking the next is what makes it
fun. You are in touch with so many people
and so many aspects of the project and the
technology that it is hugely challenging and
rewarding. Never a dull moment!
The architects job is problem-solving
on a large scale, a struggle to align people
and technology to accomplish a mixture
of goals, says Randy Stafford, architect-
at-large for the Oracle Coherence product
development team at Oracle. Its gratifying
work for someone with an analytical, engi-
neering mindset. Challenging, but stimu-
lating and rewarding.
Ronald van Luttikhuizen, managing
partner at Vennster and an Oracle ACE
Director, also enjoys the problem-solving
aspect of the role. As an IT architect you
are in the unique position to have a real
impact on the quality and usefulness of
solutions for the business, he says. Its
like solving puzzles, but you still have the
opportunity to get your hands dirty by
helping in software realization.
The ability to balance that kind of day-to-
day technical practicality with a vision for
the future sets architects apart.
To be an architect is to think differently
from those around you, and to be able to
have a profound influence on the future
state of things, says Clifford Musante, lead
architect with the Oracle Fusion Middleware
Architects team. Architects are required
to simultaneously address the multiple
concerns of the business, the users, the
evolving state of technology, and the con-
tinuous need for innovation and lower costs,
all while providing more-robust and more-
reliable solutions. For those who can think
coherently, completely, and across multiple
concerns simultaneously, whats not to love
about a job like that?
Oracle ACE Luis Weir, Oracle solutions
director at HCL AXON, describes the archi-
tects role as fundamental to an IT revolution
that is only just getting started. Information
technology is to the twenty-first century
what the Industrial Revolution was to the
eighteenth, nineteenth, and twentieth cen-
turies, says Weir. You become an architect
because you are passionate and you want
your solutions to have a positive impact on
your business or society.
As the last, lingering vestiges of the
twentieth century fall away, it becomes
ever more obvious that the familiar
mantra every business is an IT business
is expanding in scope with each passing
secondas every home becomes an IT
home; every automobile becomes a rolling
data center; and human beings, by virtue
of evolving mobile devices, wearable com-
puters, and whatever comes next in that
astonishing progression, become ever more
connected to each other and to the world
around them. How we make that journey,
and where that unpredictable path takes
us, is the business of IT architects. Who
wouldnt want to be a part of that?
LISTEN to
Are You Future-Proof?
bit.ly/1ovkYSx
DevOps, Cloud, and Role Creep
bit.ly/1gAJrzi
READ
Architects: Sell Yourselves, Save the World
bit.ly/1eSMZ0c
NEXT STEPS
Bob Rhubart
(bob.rhubart@oracle.com)
is manager of the
architect community
on Oracle Technology
Network, the host of the
Oracle Technology Network ArchBeat podcast
series, and the author of the ArchBeat blog
(blogs.oracle.com/archbeat).
Why Would Anyone Want to
Be an Architect?
Architects weigh in on what makes their jobs cool.
You want your
solutions to have a
positive impact
on your business
or society.
Luis Weir, Lead Architect, Oracle Solutions
Director, HCL AXON
MJ14_Architect.indd 22 3/27/14 4:57 PM
23 PEER-TO-PEER BY BLAIR CAMPBELL
ORACLE MAGAZINE MAY/JUNE 2014
Learn more about the Oracle ACE program at oracle.com/technetwork/community/oracle-ace.
Taking the Lead
Peers on proactive support tools, new cloud solutions, and understanding Oracle inside out
How are you using social media in your
work? Quite frequently youll find me on
Twitter, LinkedIn, and Facebook, and I
also run an Oracle tech community called
ORAERP.comThe Knowledge Center for
Oracle ERP Professionals.
Whats your favorite mobile application?
Nowadays Im getting all the latest
information on my iPhones Oracle app. Im
using it for My Oracle Support follow-ups on
service requests and also to get the latest
blog posts and information on events.
Whats been your favorite Oracle
technology conference experience?
Im an executive board member of the
Middle East Oracle User Group, and this
position earned me speaking slots at
Oracle OpenWorld San Francisco in 2012
and 2013. Both were great experiences.
At the 2013 conference, I received an
Oracle Excellence Award in the category of
Proactive Support: Individual Champion.
Its hard to express what a tremendous
honor this was.
How are you using cloud computing in
your work these days? We run a hybrid
cloud with Oracle Fusion Customer
Relationship Management in the
Oracle Cloud, and we run Oracle Fusion
Applications in an on-premises private
cloud model on the Oracle Virtual Compute
Appliance that weve built up with
InfiniBand and gigabit Ethernet switching
between two data centers.
What are you using for mobile computing?
We have Oracle Tap for Oracle Applications
Cloud Service and the Oracle Fusion
Applications Release 7 simplified UI on the
iPad for all employees. Thats cool stuff. The
simplified UI is very nice for self-service.
Were eager to start using Oracle Fusion
Expenses and the new Oracle Fusion Time
and Labor tooling.
Whats your favorite thing to do that doesnt
involve work? Well, my wife calls this work,
but I do not: If I am not working, I explore
new technologies and techniques that have
a direct relation to my work. I believe this
broadens my vision and allows great ideas
to emerge.
How did you get started in IT? I specialized
in databases as part of my masters degree.
My first position was as a lead database
engineer with a successful startup. From
the beginning I made a conscious effort to
really understand the internals of Oracle
technologies and everything that DBAs
do, and since then Ive straddled both the
developer and DBA worlds.
What are your favorite tools on the job? I like
TRCA, SQLT, LTOM, and DTrace. They give
me the ability to do a systematic analysis of
performance issues and quickly address the
ones that matter most.
Which new Oracle technologies are you
currently finding most valuable? Oracle
NoSQL Database is a great new technology
for specialized use cases where a relational
database is not the best fit. I work
extensively with low-latency distributed
systems that handle both structured and
binary data. Using Oracle NoSQL Database
in conjunction with the relational database
allows me to develop systems that achieve
the best of both worlds. t
Company: Morpho, a company specializing in
fingerprint, iris, and facial recognition systems,
as well as rapid DNA identification
Job title/description: Chief engineer,
responsible for exploring, recommending, and
implementing all database-centric technologies
in use at the company
Location: Los Angeles, California
Oracle credentials: Oracle Certified Professional
(Oracle Database 11g), with more than 15 years of
experience using Oracle products
ARIS PRASSINOS
Company: Profource, a provider of specialized
support to companies using Oracle technologies
Job title/description: Senior consultant,
responsible for architecture, application
development, and integrations using Oracle
technologies
Location: Dordrecht, the Netherlands
Oracle credentials: PeopleSoft Certified
Application Developer, with 15 years of
experience using Oracle products
HAKAN BIROGLU
Company: Raqmiyat, a systems integrator and the
primary IT division of the Al Ghurair business group
Job title/description: Oracle practice manager,
responsible for consulting, implementation,
project management, and delivering cost-
effective solutions
Location: Dubai, United Arab Emirates
Oracle credentials: Oracle Certified
Professional (Oracle9i Database, Oracle
Database 10g), Exadata Database Machine
Models X2-2 and X2-8 PreSales Specialist, with
four additional Oracle certifications and 10 years
of experience using Oracle products
KASHIF MANZOOR
MJ14_Peer.indd 23 3/28/14 9:56 AM
These trends are putting a strain on traditional IT
infrastructures, as companies look for better ways to
provide enterprise applications and analytics to the
business and pursue initiatives such as big data and
data center consolidation. It is becoming clear that
incremental modifcations are not enough to keep up.
IT groups need innovative approaches that will enable
them to reshape the infrastructure to provide the
performance and scalability needed to keep up with
the ever-evolving demands of the business.
A Leap Forward in Servers
The Fujitsu M10 server line is designed to be at the
heart of that type of infrastructure. Drawing on Fujitsus
heritage of supercomputingand its deep partnership
with Oracle that is focused on SPARC and mission-
critical business computingthis server line offers the
biggest technology advancement for SPARC servers in
more than a decade.
The Fujitsu M10 servers are built on the advanced
SPARC64 X processor and now the new SPARC64 X+
processor. These processors include Software-on-Chip
technology created through the close collaboration
of Fujitsu and Oracle. Software-on-Chip moves some
routines from software programs to the circuitry of
the chip, increasing the speed of those routines. The
current Fujitsu M10 hardware and Oracle Solaris 11
software work together with this feature, and with
Oracle Database 12c plus patch, companies may
see an increase in performance of up to 25%, due to
Software-on-Chip.
The Fujitsu M10 also uses an in-memory pro-
cessing concept, which means that data is accessed
within memory in just nano-seconds, rather than the
Today, companies need to manage huge amounts of data to develop
insights and actionable, valuable informationand to enable business
decision makers to operate with solid information and better foresight.
At the same time, they need to process this growing volume of data
faster than ever in order to stay ahead of the competition and a
constantly changing business environment. In an increasingly real-time
business world, the speed and quality of information are both key.
Delivering
at the Speed
of Business
ADVERTISING SUPPLEMENT
Delivering
at the Speed
of Business
milliseconds needed for traditional
access to storage and disks. Here
again, hardware and software can
work closely together for a signif-
cant increase in performance.
The Fujitsu M10 includes other
innovative technologies that help
drive high performance. For exam-
ple, Fujitsus advanced High Speed
Interconnect transmission technology
is used to connect CPUs, resulting in
a very fast 14.5 Gbps transmission
rate. In addition, a unique Liquid
Loop Cooling mechanism can cool hot
spots effectively, allowing compo-
nents such as the CPU and memory
to be located more closely to one
another. This close placement and
resulting compute density has helped
the Fujitsu M10 achieve one-ffth
lower memory latency, compared to
previous servers.
The Payoff in Performance
Together, these various Fujitsu
technologies add up to dramatic
increases in performance. In the frst
six months following its release, the
Fujitsu M10 set 14 world records in
industry standard benchmark tests,
including CPU-specifc tests, such
as SPEC CPU, and application-level
tests, such as Java and SAP.
A look at a few of these
benchmarks illustrates the level of
performance improvement offered
by these servers: For example, in
the SPECint_rate2006 benchmark,
which looks at CPU performance and
throughput, the Fujitsu M10 server
provided twice the performance of
the previous record-holding server.
And in the STREAM Triad benchmark,
which looks at memory access and
throughput, it was fve times faster
than the previous record holder.
The SPECjbb2013 bench-
mark is designed to measure Java
application performance including
response performance, which is
essential for real-time processing.
Fujitsu M10 with a 16-CPU confgu-
ration achieved the worlds highest
performance on both critical-jOP-
S(Java Operations Per Second) and
max-jOPS.
The servers ability to deliver
high performance has been
demonstrated outside the lab in real
world usage, as well. For example,
a telecom company that used the
Fujitsu M10 in a server consolidation
effort achieved a 3X improvement
in performance. And a printing
company that migrated from a
UNIX platform to the Fujitsu server
saw a 2X improvement in response
time and a 3X improvement in
batch processing time. [See sidebar,
Power for Global Expansion.]
Providing an
Agile IT Foundation
Business does not hold still,
and that means that IT needs to
constantly adjust and adapt to
requirements that can change
quicklyand often, unpredictably.
Typically, this means expanding
the infrastructure in step with
business growth, and doing so
cost-effectively.
The Fujitsu M10 addresses
this need with its innovative core
Since its release,
the Fujitsu M10 has
set 14 world records
in industry standard
benchmark tests.
activation feature. The SPARC64 X and the SPARC64 X+ CPU
have 16 cores. When a company purchases a lower-end
Fujitsu M10-1 with one CPU, all 16 physical CPU cores are
already included in the box. They can be activated and
paid for on an as-needed basis, making it easy to quickly
scale from 2 to 16 cores in increments of two, without
having to add any hardware. This core activation concept
applies across the Fujitsu M10 product line, up to the
largest 64-CPU modular models. In short, core activation
may allow companies to license only what they need at
the core level, and keep computing power in step with
changing demandsan approach that is highly cost-
effective.
Working hand-in-hand with core activation, the
Fujitsu M10 provides
building block capabilities
that enable simple,
modular scalability. For
example, if a company
reaches the capacity
limits with all 64 CPU
cores of a Fujitsu M10-4S
activated, it can quickly
add a second 2- or 4-socket box to the frst without
interrupting the system, and then grow that new box
through the core activation process, as needed. This
can be continued up to a maximum confguration of
16 boxes with 1,024 active cores and 32 terabytes of
memory.
With these features, the Fujitsu M10 servers provide
tremendous fexibility and expandability. This enables
the IT organization to not only optimize its investment
when it frst implements the system, but to keep
optimizing it over time. It essentially provides a pay
as you go modeland helps avoid the all-too-common
problem of having to overbuy and ending up with
equipment that is using power but not contributing to
the bottom line.
In addition to high performance and fexibility, the
Fujitsu M10 server design builds on Fujitsus history of
providing mainframe-class reliability, availability and
serviceability technology. Its architecture includes many
features that help ensure that business operations are not
interrupted and unscheduled downtime is not required to
deal with failing hardware or software components. For
example, redundant interconnect paths help minimize
the risk of errors and data corruption. Predictive self-
healing capabilities enable the operating system to work
with the server hardware to predict component failures
and minimize the impact of issues before they affect the
systems operation.
Fujitsu will keep delivering more with its Fujitsu M10
server line. This means continuing to expand Software-
on-Chip capabilities and providing features that further
increase reliability, availability and serviceability. It also
means working with Oracle on innovative approaches
to big data and other enterprise computing needs
and giving customers the technologies they need to be
agile and responsive to successfully pursue todays fast-
moving business opportunities.
For More Information
To fnd out more about the Fujitsu M10 server, please
see these related documents:
Accelerate and Consolidate the Data Center
Consolidate with Fujitsu M10 Servers
Accelerate Database Performance with
Fujitsu M10 Servers
Please visit our web site to view the full DNP case study.
Additional information about the Fujitsu M10 server line
can be found at www.fujitsu.com/sparc.
The Fujitsu M10
allows companies
to keep computing
power in step with
changing demands.
ADVERTISING SUPPLEMENT
SPEC (The Standard Performance Evaluation Corporation), SPECint and SPECjbb are registered trademarks of Standard Performance Evaluation Corpora-
tion(SPEC) in the US and other countries.Details and the latest information of this benchmark can be found at www.spec.org. Published as SPARC M10.
Fujitsu M10 is sold as SPARC M10 by Fujitsu in Japan. Fujitsu M10 and SPARC M10 are identical products.
World-record SPECint_rate2006 result: Comparison based upon SPECint_rate2006 result except Supercomputers: 23,800 on a SPARC M10-4S server with 64
SPARC64 X (3.0 GHz) processors, Oracle Solaris 11.1, Oracle Solaris Studio 12.3, 1/13 Platform Specifc Enhancement. Details and the latest information on this
benchmark can be found at www.spec.org.
World-record STREAM result: Comparison based upon STREAM Triad result except Supercomputers: 4,002 GB/s on a SPARC M10-4S server with 64 SPARC64 X
(3.0 GHz) processors. Details and the latest information on this benchmark can be found at www.cs.virginia.edu/stream/.
World-record SPECjbb2013 results: 16 CPU confguration: 308,936 max-jOPS and 168,127 critical-jOPS on a SPARC M10-4S server with 16 SPARC64 X (3.0 GHz)
processors, Oracle Solaris 11.1 SRU 6.4, Java HotSpot 64-Bit Server VM, version 1.7.0_17. 4 CPU confguration: 83,909 max-jOPS and 50,562 critical-jOPS on
a SPARC M10-4S server with 4 SPARC64 X (3.0 GHz) processors, Oracle Solaris 11.1 SRU 6.4, Java HotSpot 64-Bit Server VM, version 1.7.0_17. Details and the
latest information on this benchmark can be found at www.spec.org.
Power for
Global Expansion
D
ai Nippon Printing Co., Ltd. (DNP) is one of the
worlds largest printing companies, but its business
extends over a wide variety of felds, including
Information Communication (e.g. publication printings
and digital signage), Lifestyle and Industrial Supplies
(e.g. packaging and lifestyle materials) and Electronics
(e.g. display components and electronic devices). DNP
has been actively expanding globally and now has 26
sales locations and 13 manufacturing plants around the
world. The processing for DNP exports is done primarily
through its central overseas business system. The previous
system had been constructed based on HP-UX, but it had
limitations in terms of expandability. For this reason,
DNP elected to replace the system using Fujitsu M10
servers.
DNP needed a high performance system that could handle
increases in the amount of overseas business job data
and additional users, and evaluated multiple vendors.
We had been paying close attention to information about
new, high-performance servers and [Fujitsu M10s] high-
performance, based on supercomputer technology, was a
step above conventional servers, says Tomoyasu Nagata,
Section Head of the Overseas System Section at DNP. We
confrmed the fgures backing Fujitsu M10 and it quickly
became a very suitable candidate.
The fnal selection was done by DNP Information Systems
Co., Ltd., which manages information systems for the
DNP Group. Mr. Kazuo Kurosawa, Department Head at
DNP Information Systems, stated, Our role is to provide a
stable service for information
systems, from planning
and design to construction,
operation, and maintenance.
When we investigated
Fujitsu M10, the key points
considered were not just its
high performance, but its operational stability inherited
from mainframe reliability, the fact that it embraces the
future potential and long-term support of Oracle Solaris,
and its compatibility with Oracle Database. Specifcally
when combined with Oracle Database 11g, Fujitsu
M10-1 is able to deliver one-stop-
shop support for our business and
signifcantly reduce maintenance
costs.
For the new system confguration,
Fujitsu M10-1 was used as the core
database server. Fujitsu M10 and
Fujitsu made sure system construction
could be completed in a short amount
of time, says Mr. Shohei Yamashita,
Third Work System Dept., Work System
Headquarters, DNP Information
Systems. The database server works in conjunction with
the application server and the backup server. Furthermore,
Fujitsus one-stop-shop support delivers a quicker
resolution in the event of any issues.
After installation, the databases response performance
doubled. Batch processing performance has tripled, thus
greatly reducing overall processing time. Total opera-
tional costs have been cut by nearly 35%, with software
maintenance costs kept down, and operational effciency
increased by installing a backup server.
Regarding future prospects, Mr. Nagata says, Were
planning to add more functionality leveraging CPU Core
Activation, which will allow us to fexibly expand the
system as needed. With this function, we can scale up
when our business is ready while keeping initial costs
down. We look forward to working with Fujitsu as they
continue to support us through leading-edge solutions
like Fujitsu M10 technology for big data processing.
Tomoyasu Nagata Kazuo Kurosawa Shohei Yamashita
28
MJ14_CAF_R1.indd 28 4/8/14 11:25 AM
BY DAVID BAUM
A
s cloud computing moves out of the early-adopter
phase, organizations are carefully evaluating how
to get to the cloud. They are examining standard
methods for developing, integrating, deploying, and
scaling their cloud applications, and after weighing
their choices, they are choosing to develop and deploy cloud
applications based on Oracle Cloud Application Foundation,
part of Oracle Fusion Middleware.
Oracle WebLogic Server is the flagship software product
of Oracle Cloud Application Foundation. Oracle WebLogic
Server is optimized to run on Oracle Exalogic Elastic Cloud,
the integrated hardware and software platform for the
Oracle Cloud Application Foundation family.
Many companies, including Reliance Commercial Finance,
are adopting this middleware infrastructure to enable private
cloud computing and its convenient, on-demand access to a
shared pool of configurable computing resources.
GROUND
CONTROL
Oracle Cloud Application
Foundation solutions launch
your cloud applications.
ORACLE MAGAZINE MAY/JUNE 2014
29
I
-
H
U
A

C
H
E
N
MJ14_CAF_R1.indd 29 4/8/14 11:27 AM
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
30
Cloud computing has become an extremely critical design factor
for us, says Shashi Kumar Ravulapaty, senior vice president and
chief technology officer at Reliance Commercial Finance. Its one
of our main focus areas. Oracle Exalogic, especially in combina-
tion with Oracle WebLogic, is a perfect fit for rapidly provisioning
capacity in a private cloud infrastructure.
Reliance Commercial Finance provides loans to tens of thousands
of customers throughout India. With more than 1,500 employees
accessing the companys core business applications every day, the
company was having trouble processing more than 6,000 daily
transactions with its legacy infrastructure, especially at the end of
each month when hundreds of concurrent users need to access the
companys loan processing and approval applications.
To address these issues, Ravulapaty looked to Oracle and its Oracle
Cloud Application Foundation technologies. By consolidating nine
servers onto a single Oracle Exalogic platform, Reliance optimized
transaction throughput for its core applications and accelerated the
overall speed of processing loan transactions by up to 30 percent.
Previously, after 300 or 400 users were logged in, getting the
next session was a challenge, recalls Ravulapaty. Oracle Exalogic
is built for these kinds of challenges, especially when used in combi-
nation with Oracle WebLogic Server. Now we can support 500 con-
current sessions with no troubleand have tested the system for as
many as 5,000 users.
In addition, Oracle Cloud Application Foundation technolo-
gies enable Reliance to save significant time on provisioning and
deploying new servers.
Business users formerly had to wait at least six weeks to receive
a new server and then another two weeks to have it installed, says
Ravulapaty. Now, using cloud functionality from Oracle, they can
provision applications in just a few clicks and deploy them in less
than a day.
Oracle Cloud Application Foundation enables Reliance to utilize
public and private cloud services, anchored by a common middle-
ware infrastructure. Because Oracle uses open, standards-based
middleware technologies, once you standardize on that foundation
within your own data center, with your own private cloud, it is easy
to integrate public cloud services, Ravulapaty explains.
For example, Reliance utilizes Oracle CRM On Demand, a public
cloud service that is integrated with the companys core on-premises
lending systems and contact center applications. We have two public
cloud services and one on-premises private cloud that work together N
A
M
A
S

B
H
O
J
A
N
I
Oracle Cloud Application Foundation enables public and private cloud services, anchored by a common middleware infrastructure. Because Oracle uses open,
standards-based middleware technologies, once you standardize on that foundation within your own data center, with your own private cloud, it is easy to integrate
public cloud services, says Shashi Kumar Ravulapaty, senior vice president and chief technology officer at Reliance.
MJ14_CAF.indd 30 3/28/14 3:52 PM
ORACLE MAGAZINE MAY/JUNE 2014
31
in an integrated fashion, Ravulapaty con-
tinues. Having everything based on Oracle
Cloud Application Foundation gives us the
flexibility to integrate public and private
cloud services.
Ravulapaty touts the inherent efficiency
of Reliances new IT infrastructure: only
two people manage the core information
systems that support 2,000 people in 45
locations. Whats the reason for such an
efficient operation? According to Ravulapaty,
Oracle Exadata, Oracle Exalogic, Oracle
WebLogic, and many other parts of the
infrastructure can be managed through a
common Oracle Enterprise Manager console.
This consolidated perspective has also
enabled Reliance to resolve bottlenecks in
its business processes, such as critical batch
processes that previously took nearly 11
hours to complete. One key batch process
for loan approvals took 652 minutes to
run, Ravulapaty adds. After we ported our
information systems to Oracle engineered
systems, it only took 61 minutes.
PUBLIC FOUNDATION
According to Mike Lehmann, vice president
of product management at Oracle, while
the Oracle Cloud Application Foundation name is relatively new to
the Oracle Fusion Middleware family, its fundamental application
server, in-memory data grid, and web server technologies have
been tested and proven for many years. Clustering, virtualization,
and administrative automation allow organizations to scale their
Oracle Cloud Application Foundationsupported applications
incrementally and adjust resources to meet business priorities,
bolstered by advanced methods for cloud deployment, manage-
ment, and security, Lehmann notes.
These cloud capabilities are especially
popular among public sector organizations
such as VRSG, a nonprofit organization
that provides private cloud services to 260
municipal agencies in the German region of
eastern Switzerland. Known to Swiss citi-
zens as Verwaltungsrechenzentrum AG St.
Gallen, VRSG has developed e-government
applications to support taxation, residency
management, land use, facilities manage-
ment, accounting, and other administrative
functions for these Swiss municipalities.
Application development, integra-
tion, and hosting is VRSGs main business.
Looking to the future, Christian Manser,
head of operations and architecture at VRSG,
and his colleagues anticipated the need
for greater application hosting capacity,
particularly for their resident management
software application, which includes infor-
mation about Swiss citizens.
To support these requirements, VRSG
decided to modernize its technology stack
using Oracle Cloud Application Foundation.
First it developed Java Platform, Enterprise
Edition (Java EE) applications and
migrated them to Oracle WebLogic Server
in an Oracle Exalogic application server
environment. Then it upgraded its database assets to Oracle
Database 11g and installed them on an Oracle Exadata platform.
We needed a high-performance, multitenant environment
that could support numerous agencies and customers, says Neil
Swart, database administrator at VRSG. We compared Oracles
hardware and software systems against IBM mainframe and com-
modity Intel x86 systems. Our tests confirmed that our applica-
tions ran best on Oracle Exalogic and Oracle Exadata over an
InfiniBand network.
Many organizations look to cloud-based devel-
opment platforms to build and deploy new
applications quickly. Using these platforms may
save an IT department weeks or even months
of development and deploy ment time. But what
if application usage escalates beyond the
constraints of the chosen infrastructure? How
do you integrate public cloud applications with
on-premises applications? Is there any guaran-
tee of cloud-based application performance?
Oracle designed Oracle Java Cloud Service
to alleviate these concerns by enabling
businesses to take advantage of a proven,
standards-based infrastructure for implement-
ing cloud applications, complete with integrated
security and database access. Each Oracle Java
Cloud Service instance is built using Oracle
WebLogic Server and hosted on Oracle Exalogic,
an engineered system optimized to run Java
applications, Oracle Applications, and other
enterprise applications.
As a platform-as-a-service (PaaS) envi-
ronment, Oracle Java Cloud Service includes
subscription-based pricing; self-service pro-
visioning; and access to reliable, scalable, and
elastic cloud environments. Organizations can
use Oracle Java Cloud Service to build new Java
applications or extend software-as-a-service
(SaaS) applications deployed in Oracle Cloud.
The idea behind Oracle Java Cloud Service
is to provide an enterprise-grade platform
to develop and deploy business applications
in the cloud, notes Mike Lehmann, vice presi-
dent of product management at Oracle. Its a
proven strategy for developing and deploying
applications without the cost and complexity of
managing the underlying middleware, database
software, and infrastructure hardware. By utiliz-
ing this cloud service, businesses can maximize
productivity, with instant access to cloud envi-
ronments that support any Java EE application.
Oracle Java Cloud Service supports popular
development frameworks such as Oracle
Application Development Framework, Spring,
Hibernate, and EclipseLink. It integrates with
commonly used integrated development envi-
ronments (IDEs) including Eclipse, NetBeans,
and Oracle JDeveloper. Oracle Java Cloud Service
instances are created with just a few clicks , and
deployed applications use Oracle Database Cloud
Service as their underlying database.
Oracle Java Cloud Service
Reliance Commercial Finance
reliancecommercialfinance.com
Industry: Financial services
Headquarters: Mumbai, India
Employees: 2,000
Oracle products: Oracle Enterprise Manager,
Oracle Exadata, Oracle Exalogic Elastic Cloud,
Oracle WebLogic Suite, Oracle Advanced
Customer Support Services
VRSG
vrsg.ch
Industry: IT services/government
Headquarters: St. Gallen, Switzerland
Employees: 270
Oracle products: Oracle WebLogic Server,
Oracle Database, Oracle Exadata Database
Machine, Oracle Exalogic Elastic Cloud, Oracle
Real Application Clusters
TUI Travel PLC, Hotelbeds division
tuitravel.com
Industry: Travel and leisure
Headquarters: Palma de Mallorca, Spain
Oracle products: Oracle WebLogic Server,
Oracle Coherence, Oracle Database,
Oracle Exadata Database Machine, Oracle
WebCenter Content, Oracle JDeveloper,
Oracle JRockit
SNAPSHOTS
MJ14_CAF.indd 31 3/28/14 3:52 PM
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
32
W
I
L
L
Y

S
P
I
L
L
E
R
/
G
E
T
T
Y

I
M
A
G
E
S
Choosing the best solution, VRSG deployed the
new Oracle-based infrastructure at two data centers
approximately 10 km apart. VRSG uses Oracle Data
Guard to synchronize these mirrored environments
in an active/active failover architecture.
We leverage the complete power of Oracle
Exalogic and Oracle Exadata in both locations, with
one site for development, training, and acceptance testing and the
other for production, explains Manser. Both environments can
easily be switched from one site to the other.
The foundation of the VRSG infrastructure is now a private cloud
that allows hundreds of agencies to leverage economies of scale
while maintaining autonomy in overall governance. By utilizing
highly efficient cloud-based applications and services, these orga-
nizations are able to focus on their core charter of serving the public.
VRSGs residency management application and most other
e-government applications rely on Oracle Cloud Application
Foundation, and the Oracle technology is delivering better per-
formance and manageability. Performance improved across the
board, adds Manser. The applications on Oracle Exalogic, in par-
ticular, are very fastand simpler to maintain.
CACHED FOUNDATION
When TUI Travel PLC, one of the worlds leading travel services
companies, decided to aggregate all of its customer-facing business
applications onto a single application server platform, IT leaders
rallied around a common theme: standardization.
I like to standardize, says Facundo Rua, head of technology for
Activities, Transfers & Experiences at the Hotelbeds division of TUI
Travel PLC. I dont want to deal with multiple types of application
servers and caching solutions.
This philosophy of standardization became especially important
as the company grew and expanded its operations. Rua realized that
using open source application servers at Hotelbeds could be too
costly and complex to manage. In addition, the divisions middle-
tier database cache could not adequately support web traffic during
busy periods, such as holiday weekends.
After a rigorous evaluation process that included analyzing
the total cost of ownership of Oracle WebLogic Server 12c versus
open source application servers, the Hotelbeds division decided to
migrate its entire application ecosystem to Oracle WebLogic Server.
Additionally, TUI Travel opted to replace its open source caching
systems with Oracle Coherence 12.1.2, the in-memory data grid
of Oracle Cloud Application Foundation. According to Rua, Oracle
Coherence significantly outperformed other caching systems during
transactional tests prior to implementation.
Hotelbeds business operations require the efficient manage-
ment of large volumes of information. One important business
operation involves transferring passengers to and from airports,
hotels, and other destinationsa service that TUI provides to travel
agencies and tour operators.
We needed to restructure our transfers
product to offer more-efficient door-to-
door service, explains Rua. Previously we
only offered 8,000 transfer routes, but we
wanted to expand that number based on
GPS coordinates so we could offer virtu-
ally limitless door-to-door service. This
expansion would support our objective to
increase our transfer sales by 100 percent
during the current fiscal year.
Rua and his team created an Oracle
Coherence grid to store point-to-point
transfer information. Once we receive
GPS coordinates from a customer, we
are able to offer the product and selling
price to or from that precise location,
explains Rua. The information is created
in Oracle Database and pushed into Oracle
Coherence using the Oracle Coherence
GoldenGate HotCache feature. Instead
of just 8,000 fixed routes, we now can
support an infinite number of routes based
on any GPS coordinates.
Buoyed by the success of the Transfers
VRSG deployed a new Oracle-based infrastructure at two data centers. We leverage the complete power of
Oracle Exalogic and Oracle Exadata in both locations, with one site for development, training, and acceptance
testing and the other for production, says Christian Manser, head of operations and architecture at VRSG.
The applications on Oracle Exalogic,
in particular, are very fastand
simpler to maintain.
Christian Manser, Head of Operations and Architecture, VRSG
MJ14_CAF.indd 32 3/28/14 3:53 PM
ORACLE MAGAZINE MAY/JUNE 2014
33
project, Rua and his team decided to use Oracle Coherence to cache
information related to its activities and rental car businesses as well.
The results were amazing, continues Rua. Previously we
could process 400 requests per second at peak load. With Oracle
Coherence we can handle 3,000 requests per second or more, and
we are seeing response times between 7 and 15 milliseconds. It is a
true performance breakthrough.
Scaling these applications is easier as well: Rua estimates that
TUI can support a 50-fold increase in traffic with its Oracle infra-
structure. Without the capacity to support 50 times more traffic
and respond to 3,000 or more requests per second, meeting
our growth objectives would have been impossible, he notes.
Standardizing on Oracle WebLogic has simplified our IT environ-
ment and allowed us to deploy new applications more quickly. We
have been able to provide services that our customers didnt have
before. Being able to provide access to these services in milliseconds
has been amazing.
CONCLUDING FOUNDATION
As organizations implement cloud environments to host critical
business workloads, scalability, reliability, availability, and elasticity
become more and more important. It all comes together in Oracle
Cloud Application Foundation, concludes Oracles Lehmann.
Hundreds of thousands of customers run their workloads on Oracle
Fusion Middleware products, and even if they arent yet imple-
menting clouds, Oracle enforces standards that set up customers
for successful cloud deployments down the road. Thats how these
middleware products will continue to evolve.
David Baum is a freelance writer who specializes in the intersection of
science, technology, and culture.
LEARN more about
Oracle Cloud Application Foundation
oracle.com/us/products/middleware/cloud-app-foundation
Oracle Exalogic Elastic Cloud
oracle.com/us/products/middleware/exalogic
WATCH Getting Started with the Oracle Java Cloud Service
bit.ly/1dk38k3
NEXT STEPS
Standardizing on Oracle WebLogic has simplified our IT environment and allowed us to deploy new applications more quickly. We have been able to provide services
that our customers didnt have before, says Facundo Rua, head of technology for Activities, Transfers & Experiences at Hotelbeds.
A
D
A
M

L
U
B
R
O
T
H
/
G
E
T
T
Y

I
M
A
G
E
S
MJ14_CAF.indd 33 3/28/14 3:53 PM
YOUR DESTINATION FOR ORACLE AND JAVA EXPERTISE
Written by leading technology professionals, Oracle Press books offer the most definitive,
complete, and up-to-date coverage of Oracle products and technologies available.
www.OraclePressBooks.com @OraclePress OraclePress
Available in print and eBook formats
OCP Upgrade to Oracle Database 12c
Exam Guide
Sam Alapati
This self-study tool covers OCP Exam
1Z0-060. Electronic content includes
two practice exams and a PDF copy of
the book.
OCA Oracle Database 12c Installation
and Administration Exam Guide
John Watson
Get complete details on all objectives
for OCA Exam 1Z0-062. Electronic
content includes two practice exams
and a PDF copy of the book.
Oracle WebLogic Server 12c
Administration Handbook
Sam R. Alapati
Maintain a high-performance
enterprise application framework
using the latest management tools
and techniques.
Oracle Database Appliance:
A Hands-On Guide
Ravi Sharma
Streamline deployment,
maintenance, and support of a
highly available database solution.
Middleware Developer 35 BUSINESS ANALYTICS BY MARK RITTMAN
ORACLE MAGAZINE MAY/JUNE 2014
Go with the Flow
Oracle Data Integrator 12c delivers new flow-based
mappings and deployment specifications.
O
racle Data Integrator 12c introduces
several new tools aimed at increasing
developer productivity, improving data
loading performance, and enabling closer
integration with Oracle Fusion Middleware.
Probably the most exciting of these
new tools, particularly for users of Oracle
Databases Oracle Warehouse Builder feature
who are looking to upgrade to Oracle Data
Integrator, is the new flow-based mapping
editor. While the more traditional set-based
mappings are still supported by Oracle Data
Integrator, the flow-based user interface
enables you to create rich multistep map-
pings that move and transform data by using
a palette of mapping operators.
Oracle Technology Network has also
made the Oracle Data Integrator 12c
Getting Started appliancean Oracle VM
VirtualBoxavailable; you can download it
to your development environment and use
it to try out the new tools in Oracle Data
Integrator 12c without having to separately
install and configure all the components.
(Note that this appliance is meant for testing
and training purposes only and is not sup-
ported for use in production environments.)
CREATING A FLOW-BASED MAPPING
In this example, I explore one of the new flow-
based mappings within the sample Oracle
Data Integrator 12c project in the Oracle
Data Integrator 12c Getting Started Oracle
VM VirtualBox appliance. I demonstrate how
mappings include source and target data
store objects and make use of mapping oper-
ators to filter, aggregate, sort, and otherwise
transform data. I also take a look at the new
deployment specification capability within
Oracle Data Integrator 12c that enables you
to create more than one physical specifica-
tion for a mapping so you can create a single
mapping definition that handles initial as well
as incremental loading scenarios.
If you have not done so already,
download the Oracle Data Integrator 12c
Getting Started appliance from the Oracle
Technology Network website at bit.ly/
1fgfdpn and follow the instructions to
extract the Oracle VM VirtualBox appliance
files and log in to the appliance. (This dem-
onstration appliance includes a partially
created Oracle Data Integrator 12c project
within the work repository.) Once youve
installed and logged in to the appliance,
double-click the Oracle Data Integrator 12c
Studio icon on the desktop and, when
Figure 1: The Oracle Data Integrator 12c mapping editor
ORACLE DATA INTEGRATOR 12c
MJ14_BA.indd 35 3/28/14 11:31 AM
36 BUSINESS ANALYTICS
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
prompted, connect to the Oracle Data
Integrator work repository.
To get started with flow-based mappings
in the Oracle Data Integrator 12c Getting
Started appliance, do the following:
Navigate to the Oracle Data Integrator
Designer Navigator tab on the left-hand
side of Oracle Data Integrators Studio user
interface (Oracle Data Integrator Studio),
and then expand the Demo project under-
neath it. Expand the Sales Administration
folder within this project and then the
Mappings entry to display the list of map-
pings within the project.
Locate the Pop.TRG_PRODUCT mapping,
and double-click it to open it within the
mapping editor. Ensure that the Logical tab
is selected at the bottom of the mapping
editor screen, as shown in Figure 1.
If youve used Oracle Warehouse Builder
in the past, the flow-based mapping style
in the mapping editor should be very
familiar to you. You now create Oracle Data
Integrator 12c mappings by dragging and
dropping data store items from the Models
panel on the left-hand side of the screen
onto the mapping canvas. Data flows are
drawn between the various data stores, and
operator components transform the data.
In this example, data from the SRC_
PRODUCTS table is joined with data from
the TRG_PROD_FAMILY table, and then it is
passed through a Distinct operator before
being loaded into the TRG_PRODUCT
target table.
Lets try to execute the mapping. Click
Run (the green triangle) in the Oracle Data
Integrator Studio toolbar, leave the default
Run option values, and click OK. When the
Information dialog box displays the Session
Started message, click OK to dismiss it.
To see the status of the mapping
execution, select Window -> ODI Operator
Navigator (you may need to close the
Thumbnail panel at the top left of the screen
to see the Operator Navigator properly after
it opens). Expand the Agent entry on the
Session List panel, and then expand the
entries under your agent execution, so that
you can see the 90 Load TRG_PRODUCT
IKM Oracle Insert entry. See how the execu-
tion of this step has failed? Double-click
the step itself, and read the error message;
it is displayed on the right-hand side of the
screen. You will see that it failed because of
a unique constraint violation on the target
table. But why did that happen?
To investigate, click back to the Pop
.TRG_PRODUCT tab on the right-hand side of
the screen in Oracle Data Integrator Studio
to open the mapping editor again. Ensure
that the Logical tab is still selected, and then
click the TRG_PRODUCT data store in the
mapping to select it. Navigate to the TRG_
PRODUCT Properties panel at the bottom
right of the screen, and expand the Target
properties section, as shown in Figure 2.
The integration type for this mapping is
Control Append, which means that Oracle
Data Integrator will always insert all the
rows from the source transformations into
the target table, even if theyve already been
loaded. This is why the target tables unique
key constraint was violated and the mapping
execution failed. This type of integration
approach is appropriate when youre first
loading a target table, but after the initial
load, youll typically want to incrementally
update the table with new data.
CREATING A DEPLOYMENT SPECIFICATION
Oracle Data Integrator separates mappings
into logical and physical definitions. To con-
figure the failed mapping for incremental
loading, I would typically change the inte-
gration knowledge module to one that uses
an incremental load strategyIKM Oracle
Merge, for example. If I wanted to preserve
the original Control Append version of the
mapping in earlier versions of Oracle Data
Integrator, I needed to create an additional
copy of the mapping that used the incre-
mental load knowledge module. And if I
wanted to continue using both mappings, I
then needed to keep the logical definition of
each mapping in sync over time.
Oracle Data Integrator 12c, however,
introduces a new enhancement called
deployment specifications that enables you
to create additional physical definitions
for a single mapping. Ill now use this
enhancement to create an additional incre-
mental load version of the mapping that I
can use to update the target table after the
initial load.
To get started with deployment speci-
fications in the Oracle Data Integrator 12c
Getting Started appliance, do the following:
Before you create the new deployment
specification, you will need to change the
target Integration Type setting in the logical
mapping definition to enable incremental
loading as well as Control Append loading.
Figure 2: Displaying the properties of the TRG_PRODUCT data store
MJ14_BA.indd 36 3/28/14 11:32 AM
37 BUSINESS ANALYTICS
ORACLE MAGAZINE MAY/JUNE 2014
To do so, switch back to the
Logical tab in the mapping
editor, navigate to the
Integration Type setting in
the TRG_PRODUCT
Properties panel, and
change the selected value
from Control Append to
None; this enables the full
range of integration types
to be selected for that
target table in the physical
mapping definition.
Now switch to the Physical
tab for the mapping, and
click the TRG_PRODUCT data
store icon in the ODI_DEMO_
TRG_UNIT execution unit
to select it. Navigate to the
TRG_PRODUCT Properties
panel on this screen, and
expand the Integration
Knowledge Module properties area. Note
how the Integration Knowledge Module value
has automatically changed to IKM Oracle
Merge.GLOBAL. Change it back to IKM SQL
Control Append, so that the functionality of
this original deployment specification stays
as it was before.
Now navigate to the bottom of the
mapping editor and click the Create new
deployment specification button next to the
existing Pop.TRG_PRODUCT_DS tab.
By default, the new deployment specifi-
cation is given the name Deploy1. To change
it, navigate to the Deploy1 Properties
panel on the right-hand side of the screen
and change the Name property to Pop
.TRG_PRODUCT_INCR_DS.
Youve created an additional deployment
specification, and now you can configure
it to use an incremental load integration
knowledge module. To do so, click the
TRG_PRODUCT data store icon in the ODI_
DEMO_TRG_UNIT execution unit and then,
when its Properties panel is displayed, check
that the Integration Knowledge Module
value is set to the default IKM Oracle Merge
.GLOBAL, as shown in Figure 3.
Now your mapping has two physical defi-
nitions associated with it: one for the initial
load and one for subsequent incremental
(merge) loads. To test your new deployment
specification, save your updated mapping
definition and click Run. When the Run
dialog box appears, select your new deploy-
ment specification from the Deployment
menu to use it for the mapping execution.
Check the Oracle Data Integrator
Operator Navigator panel; you should see
this mapping execution complete success-
fully, because it will not have attempted to
write existing values back into the target
table. You could also use this approach
to create deployment specifications that
leverage Oracle GoldenGate for changed-
data capture or use other loading, integra-
tion, or check knowledge modules for a
logical source-to-target data mapping.
MAPPED AND SPECIFIED
The new flow-based mapping editor in
Oracle Data Integrator 12c enables you to
create multistep source-to-target mappings
that can have multiple physical specifica-
tions associated with them for different
types of load scenarios. Although you can
still create traditional set-based mappings
in the new release, most developers will
want to adopt this new way of mapping
data in Oracle Data Integrator 12c, due to
its ease of use, increased functionality, and
incorporation of the best aspects of Oracle
Warehouse Builder.
Figure 3: Configuring the additional deployment specification
READ more about Oracle Data
Integrator 12c
bit.ly/Phe3Rd
Making the Move from Oracle
Warehouse Builder to Oracle Data
Integrator 12c
bit.ly/1lMgurQ
READ more Rittman
Rittman Mead blog
rittmanmead.com/blog
Oracle Magazine business
intelligence columns
bit.ly/1cci4Od
DOWNLOAD
Oracle Data Integrator 12c Getting
Started appliance (VM)
bit.ly/1fgfdpn
Oracle Data Integrator 12c
bit.ly/NeIDsI
NEXT STEPS
Mark Rittman is an
Oracle ACE Director and
cofounder of Rittman
Mead, an Oracle Gold
Partner based in the UK,
with offices in the US,
India, and Australia. Rittman has worked with
Oracles business intelligence, data integration,
and data warehousing products for more than
15 years, and he writes for the Rittman Mead
blog at rittmanmead.com/blog.
MJ14_BA.indd 37 3/28/14 11:32 AM
Database Application Developer and DBA 39 SQL DEVELOPER BY JEFF SMITH
ORACLE MAGAZINE MAY/JUNE 2014
Document Entities
Generate logical models and entity relationship
diagrams easily from an existing database with
Oracle SQL Developer Data Modeler.
W
ithout adequate design documen-
tation, it can be difficult for your
Oracle Database applications stake-
holders to understand how the database
entities are defined and how they interact
with one another. A logical modelrepre-
sented by an entity relationship diagram
(ERD)clarifies these definitions and rela-
tionships. For example, an ERD can show
at a glance that multiple departments can
be associated with an employee or that a
country can include one or more locations.
Oracle SQL Developer Data Modeler
automatically included as an extension in
Oracle SQL Developer (and also available
in a standalone version)makes it easy to
produce ERDs and share them with others
who need to review or approve the data-
base design.
This column steps you through the
process of creating a relational data model
from an existing database and then con-
verting the relational model to a logical
model and a resulting ERD, such as the one
in Figure 1. After you generate the diagram,
youll see how you can customize your dia-
grams and share them in various formats
with your colleagues.
GETTING STARTED
To work through the example, you need
an Oracle Database instance with the
sample HR schema thats available in
the default database installation. You
also need version 4.0 of Oracle SQL
Developer, in which you access Oracle SQL
Developer Data Modeler through the Data
Modeler submenu, as shown in Figure 2.
Alternatively, you can use the standalone
Oracle SQL Developer Data Modeler. The
modeling functionality is identical in
the two implementations, and both are
available as free downloads from Oracle
Technology Network.
In Oracle SQL Developer, select View ->
Data Modeler > Browser. In the Browser
panel, select the Relational Models node,
right-click, and select New Relational Model
to open a blank model diagram panel.
Youre now starting at the same place as
someone whos using the standalone Oracle
SQL Developer Data Modeler.
IMPORTING YOUR DATA DICTIONARY
A design in Oracle SQL Developer Data
Modeler consists of one logical model
and one or more relational and physical
models. To begin the process of creating
your design, you must import the schema
information from your existing database.
Select File -> Data Modeler -> Import
-> Data Dictionary to open the Data
Dictionary Import wizard.
Click Add to open the New -> Select
Database Connection dialog box, and
connect as the hr user. (For detailed
information on creating a connection
ORACLE SQL DEVELOPER, ORACLE SQL DEVELOPER DATA MODELER
Figure 1: Entity relationship diagram
MJ14_SQLDev_R1.indd 39 4/8/14 11:30 AM
40 SQL DEVELOPER
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
from Oracle SQL Developer, see Making
Database Connections, in the May/
June 2008 issue of Oracle Magazine
[bit.ly/1kcO8mZ].)
Select your connection, and click Next.
You see a list of schemas from which
you can import. Type HR in the Filter box
to narrow the selection list. Select the
checkbox next to HR, and click Next.
In the Tables tab, click the Select All
toolbar button to select all tables for import,
as shown in Figure 3.
Now, open the Views tab and select
the HR checkbox. For this exercise, youll
import only the tables and views from the
HR schema. For your own applications, you
can cycle through each object-type tab and
select any objects you want to include in
your model and diagrams.
Click Next. Oracle SQL Developer
Data Modeler summarizes the types and
numbers of objects to be imported. Click
Finish to execute the import and generate
the design.
Close the View Log and take a look at your
new relational model and diagram, which
should look similar to Figure 4.
The diagram youve generated is not an
ERD. Logical models are higher abstractions.
An ERD represents entities and their attri-
butes and relations, whereas a relational or
physical model represents tables, columns,
and foreign keys. For example, a logical
person entity might be implemented phys-
ically in the database as one or more tables.
To generate a logical model from your
relational model, youll use the Engineer
to Logical Model feature of Oracle SQL
Developer Data Modeler. Before con-
tinuing, save your relational diagram with
a name of your choosing (File -> Data
Modeler -> Save). The same name will be
used for the design.
ENGINEER TO LOGICAL MODEL
In the Browser tree, expand the Relational
Models node, right-click Relational_l, and
select Engineer to Logical Model to open
the Engineer to Logical Model dialog box.
By default, everything in the relational-
model tree (on the left) is brought over
to the logical-model tree (on the right)
for you. Note that as you select an item in
either tree, its details appear in the bottom
panel. You can also view the objects in the
Tabular View tab.
When you are ready to generate your
logical model, click Engineer and wait for
the ERD to appear. You now have a logical
model and diagram. Note that the JOBS_
HISTORY table is the JOBS HISTORY entity
in the logical model.
Before you share your diagram, you can
customize its appearance and the informa-
tion it shows.
CUSTOMIZING THE DIAGRAM
To resize the entity objects to be only large
enough to show their names and attri-
butes, right-click in the blank portion of the
diagram and select Resize Objects to Visible.
You can use your mouse to select, drag,
and drop entities and their relationships to
wherever you want them to appear. Oracle
SQL Developer Data Modeler also offers
four automatically generated diagram
object layouts. Right-click in the diagram
space again, and select one of the Auto
Layout options.
Oracle SQL Developer Data Modeler sup-
ports three styles of logical-design notation:
Barker (the default)
Bachman
Information Engineering
To change the notation style, right-click
in the diagram space and select Bachman
Notation. Note that Bachman notation
Figure 3: Selecting all tables for import
Figure 2: The Data Modeler submenu in
Oracle SQL Developer
MJ14_SQLDev_R1.indd 40 4/8/14 11:31 AM
41 SQL DEVELOPER
ORACLE MAGAZINE MAY/JUNE 2014
adds the attribute datatype information to
the diagram. Resize the objects to visible,
and cycle through the Auto Layout options
to optimize the spacing and display of the
entities again.
Your business users may have con-
flicting requirements for the look and feel
of their diagrams. You can create multiple
displays in Oracle SQL Developer Data
Modeler. Each display is an independent
visual presentation of your model diagram.
Now youll create one display for each
notation style.
In the Logical Model tree in the Browser,
right-click the Displays node and select
New Display to create a new diagram
display. You can use the buttons below
your ERD to toggle between this new
display (labeled Display_1) and the original
diagram (labeled Logical). Right-click in
Display_1, and change the notation style
back to Barker.
Expand the Displays node in the Browser
tree, right-click on the Display_1 node,
Figure 4: Relational model and diagram for HR
MJ14_SQLDev_R1.indd 41 4/8/14 11:33 AM
42 SQL DEVELOPER
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
and select Properties. Change the name to
Barker, and click OK. Repeat the process in
the preceding paragraph to create another
new display. This time change the nota-
tion style to Information Engineering and
reflect this change in the display name.
Finally, youll add a legend that will help
document the diagram by showing your OS
username, creation date, and other proper-
ties of the design. Right-click in the diagram
space in any one of the displays, and select
Show -> Legend to add the legend to your
diagram. Drag and drop the legend to an
acceptable location in the diagram.
You are now ready to share your ERDs
with your colleagues.
EXPORTING AN ERD
Youll export the Information Engineering
display to a PDF document. Right-click in the
diagram space, and select Show -> Page Grid
to activate a marker that shows where your
PDF page breaks will occur. For readability,
make sure that your diagram items dont
bleed from one page into another; drag and
move them if necessary.
Next use the Zoom In button in the
Oracle SQL Developer Data Modeler toolbar
to resize the diagram to an optimal size.
When the entities are easy to see, select
File -> Data Modeler -> Print Diagram -> To
PDF File. Choose a filename and directory
location, and click Save.
Locate the generated PDF in its saved
location. You can view the ERD in a PDF
reader, as shown in Figure 5, and share the
file with your colleagues.
CONCLUSION
This column has stepped you through the
process of using the Data Dictionary Import
wizard and the Engineer to Logical Model
feature in Oracle SQL Developer Data Modeler
to generate an ERD from existing schema
objects. Youve seen how the import wizard
enables you to choose objects from multiple
schemas and object types from an existing
database. You can now convert a relational
model to a logical model, customize your dia-
grams, and then share them as PDFs. Oracle
SQL Developer Data Modeler makes database
design documentation and diagram genera-
tion a straightforward task without requiring
expensive third-party tools.
LEARN more about
Oracle SQL Developer
bit.ly/1evd08S
Oracle SQL Developer Data Modeler
bit.ly/1f0dLDI
DISCUSS
Oracle SQL Developer
bit.ly/Ni8pwF
Oracle SQL Developer Data Modeler
bit.ly/1cuEhEv
PARTICIPATE in the
Oracle SQL Developer Exchange
sqldeveloper.oracle.com
DOWNLOAD
Oracle SQL Developer
bit.ly/tGl3GL
Oracle SQL Developer Data Modeler
bit.ly/NvIHVg
NEXT STEPS
Figure 5: The exported diagram matches the size shown in Oracle SQL Developer Data Modeler.
Jeff Smith is a senior principal product manager
in the Database Development Tools group
responsible for Oracle SQL Developer and Oracle
SQL Developer Data Modeler. Smith specializes
in database tools and integrated development
environments, and he is obsessed with helping
developers save time, clicks, and keystrokes.
MJ14_SQLDev.indd 42 3/28/14 11:44 AM
DBA 43
ORACLE MAGAZINE MAY/JUNE 2014
PARTITIONING BY ARUP NANDA
Nonstop Partition
Operations
Oracle Partitioning delivers online partition moves,
selective indexes on partitions, and asynchronously
maintained global indexes to Oracle Database 12c.
T
he lead DBA at Acme Bank, Jane, is
listening to questions from her devel-
oper and DBA visitors. As covered in the
September/October 2006 Oracle Magazine
article Partition Decisions (bit.ly/H9fhZL),
Acme uses the Oracle Partitioning option
of Oracle Database 12c extensively. When
data needs to be purged, Acme DBAs drop
the partitioninstead of deleting tablesto
reduce database overhead. To move older
data to archive tables, Acme exchanges par-
titions instead of physically moving them,
and when rebuilding indexes, Acme rebuilds
the indexes partition by partition. In general,
Acme is very happy with Oracle Partitioning
features, but Janes visitors want to know if
new partition features in Oracle Database
12c can address some routine pain points
theyve been experiencing.
Jane nods and asks her visitors where
they want to start.
ONLINE PARTITION MOVE
Scott, the development lead, responds by
describing the first problem. Acme has a
database table named TRANS for storing
account transactions; it is partitioned on
the transaction date (TRANS_DT) column
and adds one new partition per month. The
table has a global index on the transaction
ID (TRANS_ID) column and a local index
on the account number (ACC_NO) column.
(Listing 1 includes a script that creates the
table and indexes.)
To reduce costs, Acme uses different types
of storage. The newer partitionsaccessed
most oftenare stored in the TSFAST
tablespace, which is on very fast, expensive
storage, whereas the older partitions
accessed less frequentlyare stored in the
TSSLOW tablespace on slower, less expen-
sive storage. At the end of each month, the
DBAs move the previous months partition
to the TSSLOW tablespace to make room for
the new month on the TSFAST tablespace.
The problem, Scott explains, is that when
the partition is moved to the TSSLOW
tablespace, the partition being moved stays
in read-only mode, so no data manipulation
language (DML) can execute against that
partition until the move command finishes
executing. Because Acmes applications
perform DML against the TRANS table
including the moving partitionScott has to
bring the applications down until the parti-
tion move is completed, to the displeasure of
the application users.
ORACLE DATABASE 12c, ORACLE PARTITIONING
create table trans (
trans_id number,
trans_dt date,
acc_no number,
trans_amt number
)
partition by range (trans_dt)
(
partition y13m11 values less than (to_date('2013-12-01','yyyy-mm-dd')) tablespace tsslow,
partition y13m12 values less than (to_date('2014-01-01','yyyy-mm-dd')) tablespace tsslow,
partition y14m01 values less than (to_date('2014-02-01','yyyy-mm-dd')) tablespace tsfast
);
-- Indexes: PK_TRANS global IN_TRANS_ACC_NO - local
create unique index pk_trans on trans (trans_id) global tablespace tsglobal
/
alter table trans add constraint pk_trans primary key (trans_id) using index
/
create index in_trans_acc_no on trans (acc_no) local
(
partition y03m11 tablespace tsslow,
partition y03m12 tablespace tsslow,
partition y04m01 tablespace tsfast
);
Code Listing 1: Creation of the TRANS table and its indexes
I
-
H
U
A

C
H
E
N
MJ14_DBA.indd 43 3/28/14 12:02 PM
44 DBA
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
Scott wants to know if there is a better
way to move the partitions without having
an impact on the application users. Yes,
there is, assures Jane. In Oracle Database
12c, partition movement does not require
the partition being moved to be in read-only
mode, so it can be 100 percent available for
DML during the move. To demonstrate that
availability, she steps through an example.
First, because the new month is February,
she creates the partition for February 2014
(named Y14M02) on the TSFAST tablespace,
using the following SQL statement:
alter table trans add partition y14m02
values less than (to_date('2014-
03-01','yyyy-mm-dd')) tablespace tsfast;
Next she moves the partition for January
2014 to the TSSLOW tablespace with the fol-
lowing SQL statement:
alter table trans move partition y14m01
tablespace tsslow update indexes;
Jane reminds her visitors that the
UPDATE INDEXES clause in the SQL state-
ment ensures proper updating of global as
well as local indexes to avoid making them
unusable. Scott quickly points out that
the same UPDATE INDEXES clause is what
makes the Y14M01 partition of the TRANS
table read-only. Only some queries against
this partition will work during the move,
whereas other DML operations will hang,
waiting for the DML lock on the partition
to be released. Scott wants to know if its
possible to allow all DML operations on the
TRANS table during the partition move.
Jane nods and explains that in Oracle
Database 12c, a new clause enables this move
to be completely online, with all DML opera-
tions available. After asking Scott not to stop
the Acme applications that use the TRANS
table, she performs the partition move oper-
ation, using the following SQL statement:
alter table trans move partition y14m01
tablespace tsslow online update indexes;
What keeps the partition online during
the move, Jane points out, is the ONLINE
keyword in the statement. This keyword
enables the move partition operation to
occur online without requiring the applica-
tions to shut down or limiting operations
to read-only queries. Scott is pleased, but
he wants to confirm the status of the global
index and the partitions of the local index on
this table. First Jane checks the status of the
global index, using the following query:
select status
from user_indexes
where index_name = 'PK_TRANS';
STATUS

VALID
The status shows VALID, meaning exactly
that: the global index is still valid and does
not need rebuilding. Next, she checks the
status of the partitions of the local index,
using the following query:
select partition_name pname, status
from user_ind_partitions
where index_name = 'IN_TRANS_ACC_NO';
PNAME STATUS

Y03M11 USABLE
Y03M12 USABLE
Y04M01 USABLE
The status of all the partitions of the local
index is USABLE after the partition move,
meaning that they do not need rebuilding.
The partition move completes while the
applications are up and running and all the
DML activities on the table are going on
as usual. Because the operation of moving
the partitions to slower tablespaces takes
several hours and occurs once every month,
Acme used to incur substantial losses during
these activities due to the resulting applica-
tion shutdown. With the ability to move a
partition while it stays online, the table can
continue to handle DML operations, and
applications can stay up during the monthly
partition moves. Scott is delighted.
PARTIAL INDEXES
With Scotts issue resolved, Jane turns to
Traci, another DBA, who has a different
concern. The users select data from the
TRANS table by filtering on several columns,
so the DBAs are asked to create multiple
indexes on various columns of the table.
However, indexes consume precious data-
base space. When the DBAs try to save space
by not creating some of the indexes, the
queries filtering on those columns perform
poorly. Users typically select from more-
recent partitions, so DBAs try to save some
space by compressing the older partitions of
the indexes, but the total space consump-
tion is significant even with the compres-
sion. Space limitations force the DBAs to
drop indexes on some columns to make
room for new indexes on other columns,
and there is a constant tug-of-war between
the development and DBA teams due to the
issue of index creation on columns. Traci
wants to know if there is a way to create as
many indexes as needed and still save space.
Yes, there is, assures Jane. Indexes,
when created, are for all the partitions of
the table, whether or not they are useful for
all of them. Oracle Database 12c includes
a new feature called partial indexes, she
explains, that enables the DBA to create
indexes on specific partitions only, rather
than on all of them. Pointing to the afore-
mentioned TRANS table, Traci advises that
the partitions of the current month and
the previous month are usually queried a
lot. Partitions for the prior months are not
queried as much, and when they are, users
are relatively patient about the reduced
performance if the indexes are not present.
With this information, Jane goes on to mark
partitions where an index is needed and
where it can be eliminated, as shown in the
following SQL:
alter table trans modify partition
y13m11 indexing off;
alter table trans modify partition
y13m12 indexing on;
alter table trans modify partition
y14m01 indexing on;
The INDEXING OFF clause tells the
database that an index is not needed on
that partition and should not be created.
Because only the current partition (Y14M01)
and the prior months partition (Y13M12) are
MJ14_DBA.indd 44 3/28/14 12:02 PM
45 DBA
ORACLE MAGAZINE MAY/JUNE 2014
queried often, indexes on those partitions
will be useful. Therefore Jane marks those
partitions with the INDEXING ON clause
and the rest with INDEXING OFF.
Next Jane creates a local index on the ACC_
NO column, as shown in the following SQL:
create index in_trans_acc_no on trans
(acc_no) local indexing partial;
She points out the very important
INDEXING PARTIAL clause in this SQL state-
ment, which instructs Oracle Database
not to create indexes on all the partitions
of the TRANS table. This clause enables
index creation for only those partitions with
INDEXING set to ON. No usable index is
created on the partitions with INDEXING set
to OFF. To confirm the result of the settings,
Jane selects the partitions of the newly
created IN_TRANS_ACC_NO index, using the
following SQL:
select partition_name pname, status
from user_ind_partitions
where index_name = 'IN_TRANS_ACC_NO';
PNAME STATUS

Y13M11 UNUSABLE
Y13M12 USABLE
Y14M01 USABLE
As expected, there are three partitions
in this local index, because there are three
partitions in the TRANS table. However,
Jane reminds everyone, the presence of
index partitions does not necessarily
prove that the index partitions are actually
stored; it is the state of an index partition
that is important. Segments are physical
objects that take up space, so Jane checks
for the presence of segments for the
IN_TRANS_ACC_NO index, using the fol-
lowing SQL:
select partition_name pname
from user_segments
where segment_name = 'IN_TRANS_ACC_NO';
SQL> set autot traceonly explain
SQL> REM --- First Query (partition WITHOUT index)
SQL> select * from trans where acc_no = 1
and trans_dt = to_date('13-NOV-2013','dd-mon-yyyy');
Execution Plan

Plan hash value: 687326229

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |

| 0 | SELECT STATEMENT | | 1 | 36 | 14 (0)| 00:00:01 | | |


| 1 | PARTITION RANGE SINGLE| | 1 | 36 | 14 (0)| 00:00:01 | 1 | 1 |
|* 2 | TABLE ACCESS FULL | TRANS | 1 | 36 | 14 (0)| 00:00:01 | 1 | 1 |

Predicate Information (identified by operation id):

2 - filter("TRANS_DT"=TO_DATE(' 2013-11-13 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND


"ACC_NO"=1)
SQL> REM --- Second Query (partition WITH index)
SQL> select * from trans where acc_no = 1 and trans_dt = to_date('13-DEC-2013','dd-mon-yyyy');
Execution Plan

Plan hash value: 552168025

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |

| 0 | SELECT STATEMENT | | 1 | 36 | 2 (0)| 00:00:01 | | |


| 1 | PARTITION RANGE SINGLE | | 1 | 36 | 2 (0)| 00:00:01 | 2 | 2 |
|* 2 | TABLE ACCESS BY LOCAL INDEX ROWID BATCHED| TRANS | 1 | 36 | 2 (0)| 00:00:01 | 2 | 2 |
|* 3 | INDEX RANGE SCAN | IN_TRANS_ACC_NO | 1 | | 1 (0)| 00:00:01 | 2 | 2 |

Predicate Information (identified by operation id):

2 - filter("TRANS_DT"=TO_DATE(' 2013-12-13 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))


3 - access("ACC_NO"=1)
Code Listing 2: Checking the access path
MJ14_DBA.indd 45 3/28/14 12:02 PM
46 DBA
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
PNAME

Y13M12
Y14M01
Drawing everyones attention to the
output, Jane points out that there are only
two segmentsnot three. Even though
there are three index partitions, only two
have corresponding stored segments. The
third index partition (Y13M11) does not have
a stored segment, because Jane marked that
table partition with INDEXING OFF, making
the index status UNUSABLE and causing it
not to consume any space.
Although less frequently, users also run
queries that filter on the ACC_NO column,
and the queries may access data from
the Y13M11 partition. Because that index
partition does not have a corresponding
segment, Traci wants to know if these
queries will return errors. Fair question, says
Jane. The answer is simple: the database will
act appropriately, depending on the pres-
ence of the segment: queries on partitions
with index segments will perform index
scans, and those on partitions without
index segments will perform full table
scans automatically. Jane demonstrates this
behavior by displaying the access paths of a
query, as shown in Listing 2. The first query
filters on the TRANS_DT column by
to_date('13-NOV-2013','dd-mon-yyyy')
The query selects data from the Y13M11
partition, where indexing is off (INDEXING
OFF) and there is no index segment. Jane
shows everyone that the query performed
a full table scan, as evidenced by TABLE
ACCESS FULL in the access path, right after
the query in the output. Next she executes
another query; this one selects from the
Y13M12 partition, which has indexing on
(INDEXING ON) and therefore has an index
segment. Here the query performed an index
scan, as shown by TABLE ACCESS BY LOCAL
INDEX ROWID BATCHED in the output.
Traci is not completely convinced. She
wonders what happens when a query selects
from two partitionsone with an index par-
tition and one without. Its handled auto-
matically, assures Jane. Oracle Database 12c
transparently rewrites the query in two
parts, she explains, one using the index for
the partition where an index is present and
the other one using a full table scan when
no index is present. The two parts are con-
nected by UNION ALL.
Traci asks if the Acme DBAs need to drop
all the indexes and re-create them with the
INDEXING PARTIAL clause. There are a lot
of indexes, and rebuilding them would take
a long time. No rebuilding is necessary,
Jane assures her. An existing index such as
IN_TRANS_ACC_NO can be transformed
with the following SQL:
alter index in_trans_acc_no indexing
partial;
To recap, Jane continues, the INDEXING
clause (INDEXING ON or INDEXING OFF)
specifies whether the index partition on a
table will actually have stored segments.
For queries that could use an index, the
optimizer will automatically choose the
index if its appropriate and available for
that partition and will use a full table scan
otherwise. Not storing the index partitions
of the less frequently used table partitions
reduces the amount of index storage. This
enables Traci to create as many indexes
as are needed by users at Acme. The older
partitions will not have space-consuming
indexes, but the more-recent partitions
will have indexes, so queries on that recent
information will perform better. This is a
win-win for both the DBA and the develop-
ment teams, because they will get better
performance with indexes being in the right
places and not incurring a significant space
penalty. Traci is ecstatic.
ASYNCHRONOUS GLOBAL INDEX
MAINTENANCE
Jonas, another DBA visitor in Janes office,
brings up a pain point he is experiencing,
again in the realm of partition management
and indexes. When Acme drops an old parti-
tion from tables during data purging, it uses
the following SQL:
alter table trans drop partition y13m11;
However, this operation changes
the global index status on this table to
UNUSABLE. Jonas demonstrates this to Jane
and her visitors, using the following query:
select status
from user_indexes
where index_name = 'PK_TRANS';
STATUS

UNUSABLE
SQL> set autotrace traceonly explain
SQL> select * from trans where trans_id = 1;
Execution Plan

Plan hash value: 174288752

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |

| 0 | SELECT STATEMENT | | 1 | 48 | 1 (0)| 00:00:01 | | |


| 1 | TABLE ACCESS BY GLOBAL INDEX ROWID| TRANS | 1 | 48 | 1 (0)| 00:00:01 | ROWID | ROWID |
|* 2 | INDEX UNIQUE SCAN | PK_TRANS | 1 | | 0 (0)| 00:00:01 | | |

Code Listing 3: Access path for a global index with orphans


MJ14_DBA.indd 46 3/28/14 12:03 PM
47 DBA
ORACLE MAGAZINE MAY/JUNE 2014
To avoid making the index unusable,
Jonas uses the UPDATE INDEXES clause, as
shown in the following SQL:
alter table trans drop partition y13m12
update indexes;
This keeps global indexes usable, but the
command takes as much time as the index
update, which is significant. But when the
operation performs the index update as it
drops the partition, it puts stress on the
database and negatively affects other oper-
ations. Jonas wants to know if there is a way
to reduce this impact on the database.
Yes, there is, Jane responds. In Oracle
Database 12c, when a partition is dropped
(or truncated), the global indexes are not
automatically invalidated. From the perspec-
tive of the database, truncating or dropping a
partition is like removing an object from the
databases metadata. Using this principle,
Oracle Database 12c records the partitions
dropped or truncated and filters out their
corresponding index entries at index access
time. These filtered index entries are known
as orphaned entries. Because no index entry
is actually modified during the dropping
or truncating of partitions, using the filter
process is much faster than updating the
global index. A new columnORPHANED_
ENTRIES in the USER_INDEXES viewshows
the presence of orphaned entries in the
index. Jane uses the following SQL to check
for orphans in the only global index on the
TRANS table: PK_TRANS.
select status, orphaned_entries
from user_indexes
where index_name = 'PK_TRANS';
STATUS ORP

VALID YES
Jane shows everyone that the value for
the ORPHANED_ENTRIES column is YES,
meaning that the index has orphans, due
to the dropping of the partition. Jonas is
skeptical. He asks if, given that the index was
not actually updated and has orphans, user
queries will be able to use the index success-
fully. Absolutely, assures Jane, pointing to
the status of the index in the output: VALID.
To confirm this status, she checks the access
path of a query that uses the global index, as
shown in Listing 3. In the output, Jane points
to the line that shows the access with the
global index PK_TRANS, confirming that the
index is used, even with the orphans.
Jonas asks if the orphans are going to
be there in that global index forever. No,
answers Jane, the orphans are cleaned up by
Oracle Database via a scheduler job named
PMO_DEFERRED_GIDX_MAINT_JOB,
owned by the SYS user. The job runs every
day during the maintenance window
defined in the database and calls a program
named PMO_DEFERRED_GIDX_MAINT,
which, in turn, executes a stored procedure
named CLEANUP_GIDX_INTERNAL in the
DBMS_PART package. This procedure cleans
up orphan entries from global indexes.
Additionally, a DBA can use the following
SQL statement to manually remove the
orphans immediately:
alter index pk_trans coalesce cleanup;
So, to recap, Jane concludes, dropping
a partition by using the UPDATE INDEX
clause does not actually update the global
indexes, but it records the dropped parti-
tions, making its corresponding index
entries orphans, which are later cleaned up
by an automated job. In other words, the
UPDATE INDEX clause updates the indexes
asynchronously. This enables the partition
drop operation to complete its execution
immediatelywithout waiting for a time-
consuming index update to complete. It also
pushes the resource-intensive index update
operation to a later time (when the data-
base is less loaded), reducing the impact of
that operation on the performance of the
database. Jonas couldnt be happier.
CONCLUSION
The Oracle Partitioning option of Oracle
Database 12c provides some important and
useful enhancements, a few of which are
described in this article. Table 1 shows some
common issues and how the new features
help solve them.
Janes developer and DBA visitors are sat-
isfied that online partition moves, selective
indexes on partitions, and asynchronously
maintained global indexes will significantly
improve processes, save time, and improve
the user experience at Acme.
LEARN more about Oracle Partitioning
oracle.com/us/products/database/options/
partitioning
READ Partition Decisions
bit.ly/H9fhZL
DOWNLOAD Oracle Database 12c
bit.ly/1czAk2I
NEXT STEPS
Arup Nanda (arup@
proligence.com) has
been an Oracle DBA
since 1993, handling
all aspects of database
administration, from
performance tuning to security and disaster
recovery. He was Oracle Magazines DBA of the
Year in 2003 and received an Oracle Excellence
Award for Technologist of the Year in 2012.
Problem Solution
Indexes need to be created on many
columns, but indexes take up space,
which is limited, so you have to drop
some indexes.
Partial indexing enables you to create indexes as needed on certain partitions only,
saving significant space while allowing indexes on all needed columns. The optimizer
automatically chooses a full table scan or an index scanor even a combination of
bothdepending on the query execution costs and the partitions being touched by
an operation.
Partition operations such as moving
a partition to a different tablespace
prevent any DML activity on the
partition being moved, which degrades
application performance.
DML operations can continue to execute on the partitioned table when the partition
move operations use the ONLINE keyword.
Global index updates during partition
drop or truncate take a long time and
use precious resources.
Global index updates are asynchronous by design in Oracle Database 12c. The drop
or truncate operation completes after recording the partition objects that have been
dropped or truncated. Orphaned entries are subsequently cleaned up automatically
during a quieter maintenance period.
Table 1: Partitioning issues and Oracle Partitioning solutions
MJ14_DBA.indd 47 3/28/14 12:03 PM
oracle.com/cloud
or call 1.800.ORACLE.1
10 of the 10
Top SaaS
Providers
Are Powered by Oracle
Copyright 2013, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.
Database Application Developer 49
ORACLE MAGAZINE MAY/JUNE 2014
PL/SQL BY STEVEN FEUERSTEIN
Writing SQL in Oracle
Application Express
Minimize the code you write, be careful where you put it,
and relocate it to packages as much as possible.
I
n the last issue of Oracle Magazine, I
offered advice on how best to write
PL/SQL code for Oracle Application Express
applications. In this article, I take a look at
how, when, and where to write SQL state-
ments for those same applications.
DIFFERENT LANGUAGE, SAME CHALLENGES
I offered three guidelines in the last article
that are worth repeating here (and then
exploring in the context of SQL, specifically):
The only SQL statements you should write
in the Application Builder (the Oracle
Application Express UI for building appli-
cations) are queries for populating reports
and tables. Even then, you should simplify
those queries as much as possible by using
views and, for some complex scenarios,
table functions.
Avoid repetition of code whenever pos-
sible. This advice is not specific to Oracle
Application Express; it is one of the most
important guidelines for high-quality pro-
gramming overall.
Keep the volume of code inside the
Oracle Application Express application
(which, for the remainder of this article,
I will refer to simply as application) to
a minimum. Move as much code as pos-
sible to PL/SQL packages.
This article zeroes in on that first guide-
line but that guideline is also closely related
to, and implemented through, the other
two guidelines.
I will again turn to the PL/SQL Challenge
application for examples demonstrating
both compliance with and violations of the
above guidelines.
MOVE ALL DML TO PL/SQL PROCEDURES
Lets begin by taking a look at how to imple-
ment data manipulation language (DML)
statements (specifically INSERT, UPDATE,
and DELETE) you need to run in response to
user input in your application.
Its certainly easy enough to write an
INSERT or UPDATE statement in an Oracle
Application Express application. Because
PL/SQL natively supports compilation and
execution of SQL statements, you simply
create a PL/SQL process and then type the
DML statement into the appropriate field.
There are very few applications that do
not change the contents of database tables
in response to user actions, so your applica-
tion will likely require the execution of many
DML statements. I recommend that you
never write those statements directly inside
the Application Builder. Instead, you should
Let Oracle Application Express generate as
many of your DML statements as possible.
For example, if you need to create a page
that enables a user to perform DML opera-
tions on a table, you can define a region
as Form on a Table for View, and then
Oracle Application Express will implement
all the DML for youusing the Automatic
Row Processing feature. Adding a column
to the table adds a new item to the region,
and Oracle Application Express will adjust
its DML statements to incorporate this
new column.
Define packaged procedures, put your DML
statements inside those procedures, and
then call the procedures from within the
applications processes. By doing this, you
can more easily change the DML statement
(and even add more DML statements,
which I will demonstrate), with minimal
impact on your application.
One of the most compelling reasons to
move your DML to PL/SQL packages is this
basic reality of programming: things (and, in
particular, transactions) get more compli-
cated over time. What today might be a single
insert into table T1 gradually morphs into
1. INSERT INTO TABLE T1.
2. INSERT INTO TABLE T2.
3. UPDATE TABLE T3.
And when you think you need to use
something in only one place, you then
discover you need to use it in a second and
third location in your application as well.
So if you write that INSERT INTO T1 in
multiple places, youll find yourself copying
and pasting the expanded transaction into
each location when that simple transac-
tion expands to a three-step transaction.
The end result is an application that is
extremely difficult to debug, manage, opti-
mize, and enhance.
I ran into precisely this issue with the
PL/SQL Challenge website, which is built on
Oracle Application Express and run by my
son, Eli, and me. The main activity on this
website is offering quizzes that test knowl-
edge of various Oracle technologies. Users
find out how well they did by visiting the
Quiz Details page after the quiz has closed
and reviewing their performance.
I keep track of each quiz viewing by a
player in the qdb_quiz_visits table. So my
first iteration of the Oracle Application
Express page process on the Quiz Details
page simply executed this statement:
INSERT INTO qdb_quiz_visits
(user_id, quiz_id)
VALUES (:p659_user_id,
:p659_quiz_id);
But after implementing this process,
I realized that I also wanted to record a
viewing of a quiz whenever a player checks
out the survey results for that quiz. So off I
went to another page and with a quick copy/
ORACLE DATABASE, ORACLE APPLICATION EXPRESS
MJ14_PLSQL.indd 49 3/28/14 12:16 PM
50 PL/SQL
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
paste (along with careful review and editing
to replace page numbers), a new page
process was created:
INSERT INTO qdb_quiz_visits
(user_id, quiz_id)
VALUES (:p740_user_id,
:p740_quiz_id);
Nothing is different except the page
number. Thats certainly simple and obvious
enough. So why should I bother creating
a procedure in a package and putting the
INSERT there? If the processing for recording
a visit never changed, I suppose there
wouldnt be any reason to do that.
But, as was going to be the case for just
about every one of my requirements, I
did need to change this processing when
I added points to the PL/SQL Challenge
website. As encouragement to study, players
get five points every time they view a quiz.
The code for assigning points is not much
more complicated than the INSERT into the
qdb_quiz_visits table:
INSERT INTO qdb_points
(user_id,
activity_date,
activity_id,
activity_key_value,
points)
VALUES ( :p659_user_id,
SYSDATE,
'QUIZVIEW',
:p659_quiz_id,
5);
And therein lies the trap, the awful
temptation. Having already duplicated the
INSERT statement, should I now continue
down that path and add this new INSERT
statement to both places?
Fortunately, the solutionthe way to
avoid chaosis straightforward: hide all
the transaction logic behind a single proce-
dure, change all item references to param-
eters, and then call that procedure wherever
Each PL/SQL article offers a quiz to test your
knowledge of the information it provides. The
quiz appears below and also at PL/SQL Challenge
(plsqlchallenge.com), a website that offers online
quizzes on the PL/SQL language as well as SQL,
Oracle Application Express, database design, and
deductive logic.
Here is your quiz for this article:
I execute these statements:
CREATE TABLE plch_employees
(
employee_id INTEGER,
last_name VARCHAR2 (100)
)
/
CREATE TABLE plch_departments
(
department_id INTEGER,
department_name VARCHAR2 (100)
)
/
BEGIN
INSERT INTO plch_employees
VALUES (100, 'Shubin');
INSERT INTO plch_employees
VALUES (200, 'Gould');
INSERT INTO plch_employees
VALUES (300, 'Dawkins');
INSERT INTO plch_departments
VALUES (10, 'Analysis');
INSERT INTO plch_departments
VALUES (20, 'Discovery');
COMMIT;
END;
/
Which of the following choices contain(s)
code I can place in the query field of an Oracle
Application Express interactive report so that I
can display either employee or department infor-
mation from that report?
a.
BEGIN
RETURN 'SELECT '
|| CASE :p1000_report_type
WHEN 'D'
THEN
'employee_id, last_name
FROM plch_employees'
WHEN 'E'
THEN
'department_id, department_name
FROM plch_departments'
END;
END;
b.
First create these objects in the database:
CREATE OR REPLACE TYPE plch_report_data_ot
IS OBJECT
(
report_id INTEGER,
report_text VARCHAR2 (100)
)
/
CREATE OR REPLACE TYPE plch_report_data_nt
IS TABLE OF plch_report_data_ot
/
CREATE OR REPLACE PACKAGE plch_pkg
IS
FUNCTION id_and_name (
type_in IN VARCHAR2)
RETURN plch_report_data_nt;
END;
/
CREATE OR REPLACE PACKAGE BODY plch_pkg
IS
FUNCTION id_and_name (
type_in IN VARCHAR2)
RETURN plch_report_data_nt
IS
l_return plch_report_data_nt;
BEGIN
CASE type_in
WHEN 'E'
THEN
SELECT plch_report_data_ot (
employee_id,
last_name)
BULK COLLECT INTO l_return
FROM plch_employees;
WHEN 'D'
THEN
SELECT plch_report_data_ot (
department_id,
department_name)
BULK COLLECT INTO l_return
FROM plch_departments;
END CASE;
RETURN l_return;
END;
END;
/
Then use this query in the report:
SELECT *
FROM TABLE (
plch_pkg.id_and_name (
:p1000_report_type))
/
c.
SELECT employee_id report_id,
last_name report_text
FROM plch_employees
WHERE :p1000_report_type = 'E'
UNION
SELECT department_id, department_name
FROM plch_departments
WHERE :p1000_report_type = 'D';
Take the Challenge
MJ14_PLSQL.indd 50 3/28/14 12:16 PM
51 PL/SQL
ORACLE MAGAZINE MAY/JUNE 2014
it is needed. Heres the record_quiz_view
procedure that hides the inserts for visits
and points:
PACKAGE BODY qdb_quiz_mgr
IS
PROCEDURE record_quiz_view (
user_id_in IN PLS_INTEGER,
quiz_id_in IN PLS_INTEGER)
IS
BEGIN
INSERT INTO qdb_quiz_visits
(user_id, quiz_id)
VALUES (user_id_in, quiz_id_
in);
INSERT INTO qdb_points (user_id,
activity_date,
activity_id,
activity_key_value,
points)
VALUES (user_id_in,
SYSDATE,
'QUIZVIEW',
quiz_id_in,
5);
END;
END;
And then my process code is slimmed
down to nothing more than
BEGIN
qdb_quiz_mgr.record_quiz_view (
user_id_in => :p659_user_id,
quiz_id_in => :p659_quiz_id);
END;
Taking the little bit of extra time needed
to isolate your DML statements into pro-
cedures is like putting money into a retire-
ment plan. You might feel a little pinch
right now (a little bit less money, a little bit
less time), but in the future, you will have
more money and time, because you will
be able to modify and enhance your code
much more easily.
But dont worry! You wont have to wait till
you are 65 years of age to feel the benefits of
DML hiding. That happens almost immedi-
ately, because applications change so rapidly
and because application developers often
dont get it completely right the first time.
Consider the PL/SQL Challenge record_
quiz_view procedure. I soon realized that if
players can get five points for every viewing
of the quiz details, some players might click
that quiz link over and over again, artificially
inflating their point total. So I needed to go
back to that procedure and give points only
for the first viewing on a given day.
I am sure you can all think of similar
examples from your own applications.
Everything gets more complicated over
time; you rarely think of everything up front;
you will be going back and changing that
code. And when that code contains transac-
tions that can be initiated by a user, you
really need to get it right.
Ive demonstrated the hiding of INSERT
statements. With inserts, you are always
creating new rows. When executing
updates and deletes, however, you modify
existing rows, which raises the possibility
that an update can be lost. Suppose that
Users A and B query the same row of data
on a page of the website. Then suppose
they both make changes. User A presses
the Submit button, and the changes are
saved. Then User B presses Submit, and
those changes are madeoverwriting the
changes saved by User A.
If, on a given page, you are not able to take
advantage of Automatic Row Processing and
instead are writing your own updates and
deletes, be sure to take the following steps:
1. Determine whether a lost-update
scenario is possible.
2. If it is possible, consider using the Oracle
Application Express Create Package with
Methods on Tables utility. It will generate
a package with subprograms that make
it easy to use MD5 (a message digest
algorithm that produces 128-bit hash
values) to guard against loss of updates.
You can access Create Package with
Methods on Tables via SQL Workshop ->
Utilities -> Methods on Tables, as shown in
Figure 1.
You can then utilize these subprograms
to both hide the DML statements and
ensure that user changes are not lost.
HIDE COMPLEX QUERIES IN VIEWS
So Ive addressed inserts, updates, and
deletes. What about that other DML state-
ment SELECT? I have two recommendations
for you:
1. If you are writing a SELECT statement
inside a process or other code area,
follow the guidelines listed in the pre-
vious section. Namely, hide that query
inside a package subprogram, this time a
function (because a query returns data,
just like a function), and then call the
function in the Application Builder.
Suppose a PL/SQL Challenge process
needed the date on which a player answered
a quiz. I could write this block inside the
Application Builder:
DECLARE
l_date DATE;
BEGIN
SELECT taken_on
INTO l_date
FROM qdb_quiz_answers
WHERE user_id = :p659_user_id
AND quiz_id = :p659_quiz_id;
IF l_date < SYSDATE - 2
THEN
....
END IF;
END;
Instead, I should move the query to a
Figure 1: Create Package with Methods on Tables location
MJ14_PLSQL.indd 51 3/28/14 12:17 PM
52 PL/SQL
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
function and reduce the process code to
CREATE OR REPLACE PACKAGE BODY
qdb_quiz_mgr
IS
FUNCTION quiz_taken_on (
user_id_in IN PLS_INTEGER,
quiz_id_in IN PLS_INTEGER)
RETURN DATE
IS
l_date DATE;
BEGIN
SELECT taken_on
INTO l_date
FROM qdb_quiz_answers
WHERE user_id = user_id_in
AND quiz_id = quiz_id_in;
RETURN l_date;
END;
END;
/
DECLARE
l_date DATE;
BEGIN
l_date :=
qdb_quiz_mgr.quiz_taken_on (
:p659_user_id,
:p659_quiz_id);
IF l_date < SYSDATE - 2
THEN
...
END IF;
END;
/
And now when I need to fetch multiple
rows, Ill use BULK COLLECT and return an
array, as in
CREATE OR REPLACE PACKAGE qdb_quiz_mgr
IS
TYPE answers_t
IS TABLE OF qdb_quiz_answers%ROWTYPE;
FUNCTION quizzes_taken_by (
user_id_in IN PLS_INTEGER)

RETURN answers_t;
END;
/
CREATE OR REPLACE PACKAGE BODY
qdb_quiz_mgr
IS
FUNCTION quizzes_taken_by (
user_id_in IN PLS_INTEGER)
RETURN answers_t
IS
l_answers answers_t;
BEGIN
SELECT *
BULK COLLECT INTO l_answers
FROM qdb_quiz_answers
WHERE user_id = user_id_in
ORDER BY taken_on;
RETURN l_answers;
END;
END;
/
2. When you must write a SELECT statement
in the Application Builder (when building
a report region, for example), keep that
query as simple as possible, hiding com-
plexity inside views. This makes manage-
ment of your application simpler and also
helps you avoid repetition of query logic
(joins and WHERE clauses).
In a properly normalized relational table
design, you will end up with lots of tables
and need to do the same joins over and over
again. On the PL/SQL Challenge website, for
example, each quiz has a topic (the Oracle
feature to which it is related) and a quiz
format (multiple choice, true/false, and
so on). Consequently, I find myself writing
queries like this a lot:
SELECT qz.question_text the_question,
t.title feature,
qf.text quiz_format
FROM qdb_quizzes qz,
qdb_topics t,
qdb_quiz_formats qf
WHERE qz.topic_id = t.topic_id
AND qz.quiz_format_id =
qf.quiz_format_id;
My fingers quickly get tired of typing
that WHERE clause, and my inner voice
never stops badgering me: Why are you
writing this again? Dont you have some-
thing better to do?
Yes, I do. So instead of writing this three-
way join more than once, I create a view:
CREATE OR REPLACE VIEW qdb_quizzes_v
AS
SELECT qz.question_text the_question,
t.title feature,
qf.text quiz_format
FROM qdb_quizzes qz,
qdb_topics t,
qdb_quiz_formats qf
WHERE qz.topic_id = t.topic_id
AND qz.quiz_format_id =
qf.quiz_format_id;
Now the query for my report is nothing
more than
SELECT * FROM qdb_quizzes_v
And if I discover a week from now that my
report needs another column from one of
those tables, I can add it to the view, and
voil!it will be available in the report.
But watch out! If you create lots of views
that contain joins and then join those views
to each other, you may end up doing a bunch
of unnecessary work. Consider my topics
table, used in the qdb_quizzes_v view. A
topic is always in a domain (a technology
area, such as SQL or PL/SQL). In addition,
PL/SQL Challenge offers a set of resources
related to a topic, including a link to the
Oracle documentation.
So I create this handy view:
CREATE OR REPLACE VIEW qdb_topic_
details_v
AS
SELECT d.domain_name technology,
t.title feature,
r.title doc_title,
r.url doc_link
FROM qdb_topics t,
qdb_resources r,
qdb_domains d
WHERE t.topic_id = r.topic_id
AND r.resource_type =
'FEATURE_DOC'
AND t.domain_id = d.domain_id;
And I then use it in my Topic Details
report, which is perfectly appropriate. But
MJ14_PLSQL.indd 52 3/28/14 12:17 PM
53 PL/SQL
ORACLE MAGAZINE MAY/JUNE 2014
the next day, I need to combine quiz infor-
mation with the documentation URL and
the domain name. What could be easier
than joining those two views?
SELECT t.technology,
q.question_text,
r.doc_link
FROM qdb_quizzes_v q,
qdb_topic_details_v t
WHERE q.topic_id = t.topic_id;
Yet by doing this, I pay the price of a
join with the qdb_topics table twice. Will
this cause performance problems? In
this simple example, probably not. But as
your queriesand viewsgrow increas-
ingly complex (it is not uncommon to have
10-way joins in views, for example), perfor-
mance may well degrade. In addition, future
generations of programmers will wonder
why you didnt just write exactly the query
you needed. Just lazy is usually not an
acceptable answer.
To conclude, keep your report queries as
simple as possible through the use of views,
but pay attention and maintain discipline
when using those views. Dont ask the SQL
engine to do lots of extra work just so you
can avoid writing a query that does what is
needed and nothing more.
AVOID REDUNDANT REPORTS WITH
TABLE FUNCTIONS
The ability to create interactive reports is
among the best aspects of Oracle Application
Express. It not only makes it easier to build
powerful reports but also gives users a tre-
mendous amount of control over the content
and appearance of those reports. I use them
all over the PL/SQL Challenge website and, in
particular, have found them to be critical for
rankings reports.
Players want to see rankings for a variety
of criteria, such as
By player. Players can learn their own
ranking and find out who is top-ranked in
PL/SQL quizzes.
By company. Players can compare the per-
formance of everyone working in the same
company or development team.
By affiliation. Do members of ODTUG
score higher than members of DOAG (the
German Oracle User Group)?
By country. Nationalism is alive and well on
PL/SQL Challenge!
By different periods. Rankings are available
for a week, month, quarter, year,
or lifetime.
The need for ranking across different
periods introduces the greatest complexity
to these reports, because I populate and
rely on a different materialized view for each
period. To obtain quarterly rankings, for
example, I must query from the mv_qdb_
rankings_q view.
Different views initially gave me a head-
ache, because an interactive report cannot
be based on a dynamic SQL statement. As
a result, I built almost two dozen different
reports, as shown in Figure 2.
I didnt feel particularly clever or produc-
tive while I built these reports, but at least I
figured that I would have to build them just
once and then not mess with them anymore.
Yeah, right.
That fantasy lasted for a couple of
months. By that time, Id accumulated a
solid half-dozen high-priority enhancement
requests from players. I then faced the chal-
lenge of a very tedious and error-prone job
of going through 21 interactive reports and
making all the necessary changes.
Surely there is a better way (besides
Oracles enhancing Oracle Application
Express to support dynamic SQL in interac-
tive reports). And there is. You can use a
table function, a function that can be called
inside the FROM clause of a query, wrapped
inside the TABLE operator. The function
returns a collection of data, and the TABLE
operator converts that collection into rows
and columns, which can then be consumed
by the report (and anything else that exe-
cutes a query using that table function).
It is outside the scope of this article to
provide a full explanation of table func-
tions; I encourage you to explore them
through the link provided at the end of the
article, because they are incredibly useful.
Here I walk through only the basic steps I
took to use table functions to reduce the
number of interactive reports for ranking
to just two.
Taking a top-down approach, I start with
the query I want to be able to execute in
the report. If I want to see company rank-
ings for the daily PL/SQL quiz in the fourth
quarter of 2013, the query will be nothing
more than

SELECT *
FROM TABLE (
qdb_ranking_mgr.ir_rankings_tf (
category_in => 'COMPANY',
period_type_in => 'QUARTERLY',
competition_in => 'DAILY PL/SQL QUIZ',
period_in => '2013-4'));
I hard-coded the values passed to the
function; in the application, these values
Figure 2: The 21 initial PL/SQL Challenge interactive reports
MJ14_PLSQL.indd 53 3/28/14 12:17 PM
54 PL/SQL
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
are selected by the player.
I hope you agree that that is a very simple
querybut only because Ive hidden all the
details away in the function.
So now lets go under the covers of this
table function. A table function must return
a collection, so I must define a collection
type. Because I am returning multiple pieces
of information (company name, ranking,
percentage correct, and so on), I must create
a collection of object types:
CREATE OR REPLACE TYPE
ir_ranking_ot IS OBJECT
(
period VARCHAR2 (500),
type_name VARCHAR2 (300),
score INTEGER,
pct_correct_answers NUMBER,
answer_time VARCHAR2 (500),
overall_rank INTEGER
);
/
CREATE OR REPLACE TYPE ir_rankings_nt
IS TABLE OF ir_ranking_ot
/
The header of my function now becomes
PACKAGE qdb_ranking_mgr
IS
FUNCTION ir_rankings_tf (
category_in IN VARCHAR2,
period_type_in IN VARCHAR2,
competition_in IN INTEGER,
period_in IN VARCHAR2)
RETURN ir_rankings_nt;
The implementation of a table function
is very application-dependent. My ir_
rankings_tf function contains 230 lines of
code that construct a dynamic query based
on the parameter values, the most critical
of which is the period type, because that
determines which materialized view is
needed. Here is a highly simplified version
of this function, demonstrating the dec-
laration of a local collection, the popula-
tion of that collection using EXECUTE
IMMEDIATE - BULK COLLECT for a very
dynamic query, and the return of that col-
lection from the function:
l_report_data ir_rankings_nt;
BEGIN
EXECUTE IMMEDIATE
'SELECT ir_ranking_ot('
|| c_select_list
|| ') FROM mv_qdb_rankings_'
|| period_type_in
|| ' mv,'
|| c_detail_tables
|| ' WHERE '
|| c_where_clause
|| ' GROUP BY '
|| c_period_qualifier_column
BULK COLLECT INTO l_report_data;
RETURN l_report_data;
END;
Table functions can be quite com-
plicated, but their complexity is hidden
behind the function interface. Developers
who need the data returned by a table
function can write a simple query that gets
them the data without making them sort
through the details.
The main benefit I have found for table
functions inside Oracle Application Express,
though, is to dramatically reduce the number
of interactive reports I have to maintain.
CONTROL YOUR SQL, CONTROL YOUR APP
SQL statements are the most important
parts of any Oracle Databasebased appli-
cation. They are also the parts of your appli-
cations that cause the most performance
problems and change the most frequently.
It is therefore extremely important to estab-
lish and follow guidelines about how, when,
and where to write SQL statements.
I recommend that you follow these guide-
lines for SQL in Oracle Application Express:
Hide complex query logic behind views,
and then, when defining reports and tables
in the Application Builder, write simple
SELECTs against those views.
Hide all DML statements (inserts,
updates, deletes) behind packaged pro-
cedures, and then call those procedures
from the Application Builder, passing
items as parameters.
Hide all queries you execute inside pro-
cesses behind packaged functions that
return the desired data (in the form of a
scalar value, a record, or a collection).
For queries that drive reports and tables,
hide as much complexity as possible
behind views, but watch out for misuse of
those views that can mean excessive I/O.
Explore ways to utilize table functions
in Oracle Application Express queries to
avoid redundancy in interactive reports
and other UI elements.
Follow these guidelines, and you will find
yourself spending less time maintaining your
applications. You will, instead, have more
time to think about, design, and implement
exciting new features for your users.
The PL/SQL Challenge quiz in last issues
Writing PL/SQL in Oracle Application
Express article offered different ways to
implement a condition on an item. All the
answers were correct, but I would encour-
age you to use choice (d) as your approach,
because it creates a package to hold the
PL/SQL function.
Answer to Last Issues Challenge
DOWNLOAD
Oracle Database 12c
bit.ly/fherki
Oracle Application Express
bit.ly/1iikZ9j
TEST your PL/SQL knowledge
plsqlchallenge.com
READ more Feuerstein
bit.ly/omagplsql
READ more about
table functions
Oracle Database PL/SQL Language
Reference 12c Release 1 (12.1)
bit.ly/MECSnO
PL/SQL
oracle.com/technetwork/database/features/plsql
Oracle Application Express
oracle.com/technetwork/developer-tools/apex
NEXT STEPS
Steven Feuerstein
(steven@stevenfeuerstein
.com) is an Oracle ACE
Director; a widely read
author; and creator of
PL/SQL Challenge, a quiz
site for Oracle technologists. More information is
available at plsqlchallenge.com.
MJ14_PLSQL.indd 54 3/28/14 12:18 PM
Database Application Developer and DBA 55
ORACLE MAGAZINE MAY/JUNE 2014
ASK TOM BY TOM KYTE
On Oracle Database 12c,
Part 5
Our technologist explores the invisible, improves
introspection, and expands SQL.
U
sually I take three or four user-submitted
questions from the past two months and
answer them here in each Ask Tom column.
In the last four and in this column, however,
Ive taken a look at some key Oracle Database
12c features. These features are all part of the
12 Things About Oracle Database 12c or
12 More Things About Oracle Database 12c
presentations I gave at Oracle OpenWorld
2012 and 2013 in San Francisco. (You can
find the slides for those presentations on
asktom.oracle.com on the Files tab). The first
three Oracle Database 12c features I looked
at were improved defaults, bigger datatypes,
and top-n queries. Next I discussed a new
row-pattern-matching clause and how undo
for temporary tables has changed in Oracle
Database 12c. Then I covered some parti-
tioning improvements, adaptive execution
plans, and enhanced statistics. In the last
issue, I took a different approach to discuss
the #1 new capability of Oracle Database
12cthe Oracle Multitenant option.
In this column, the last of the Oracle
Database 12c new features series, I look at
invisible columns, SQL text expansion, and
improved introspection.
INVISIBLE COLUMNS
Invisible columns in Oracle Database 12c
provide the ability to add a column to any
table such that the newly added column will
not be visible in a SELECT * query and will
not be considered for insertion in an INSERT
statement that does not explicitly list that
column. In other words, invisible columns
enable you to add a column to a table and
not affect poorly coded applications that use
SELECT * or perform inserts without listing
the columns.
To demonstrate, I start with a two-
column table:
SQL> create table t
2 ( x int,
3 y int
4 )
5 /
Table created.
SQL> insert into t values ( 1, 2 );
1 row created.
Next I assume the existence of some
application code (waiting to be fixed!) that
includes a SELECT * FROM T. Even worse, I
assume that the application code includes
INSERT INTO T VALUES (:x,:y)an insert that
does not specify the columns it is inserting
into. (I consider both of these conditions to
be bugs in the developed application code,
and they need to be fixed, but you might need
to add this column right now and get back to
the buggy code later.) And Id like to be able
to add a new column without affecting this
code. Enter the invisible column.
I can add a new column, Z, using the
INVISIBLE attribute:
SQL> alter table t add
( z int INVISIBLE );
Table altered.
If I were to describe this table in SQL*Plus
or many other tools, I would see the table
without this new column:
SQL> desc t
Name Null? Type

X NUMBER(38)
Y NUMBER(38)
This is the default behavior of SQL*Plus,
but, by using the SET COLINVISIBLE setting,
I can direct it to show the invisible columns:
SQL> set colinvisible on
SQL> desc t
Name Null? Type

X NUMBER(38)
Y NUMBER(38)
Z (INVISIBLE) NUMBER(38)
Now because this column is invisible, it
will not be selected via a SELECT *:
SQL> select * from t;
X Y

1 2
3 4
Nor will it affect existing inserts that do
not include an explicit list of column names:
SQL> insert into t values ( 3, 4 );
1 row created.
For backward compatibility, this new
capability is a bonus. New applications
that need to access this column have full
access to it:
SQL> insert into t (x,y,z)
2 values ( 5,6,7 );
1 row created.
SQL> select x,y,z from t;
ORACLE DATABASE 12c
I
-
H
U
A

C
H
E
N
MJ14_AskTom.indd 55 3/28/14 1:48 PM
56 ASK TOM
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
X Y Z

1 2
3 4
5 6 7
Those new applications only need to
explicitly reference column Z, which is
the right approach (because, again, using
SELECT * and INSERT without a column list
should be considered a buga bug that
needs to be fixed).
Ultimately, after the legacy code has
been corrected, you will want to make this
column visible:
SQL> alter table t modify z visible;
Table altered.
SQL> select * from t;
X Y Z

1 2
3 4
5 6 7
A positive side effect of using invisible
columns is the ability to logically reorder
the columns in a table. I stress that this
will be a logical, not a physical, reordering
of the columns.
To demonstrate this, I add a new column
to the middle of a table. Physicallyon disk
this newly added column will be the last
column, and if I dump the database block to
a trace file, it will appear last. But logically
from the end user perspectivethis newly
added column will appear as if it were in the
middle of the table. It will be visible via a
DESCRIBE command in SQL*Plus, the results
of a SELECT *, and so on.
To demonstrate logical reordering of
columns, I first create a new table:
SQL> create table t
2 ( a int,
3 b int,
4 d int,
5 e int
6 );
Table created.
Now suppose that as part of an application
upgrade, I need to add a new column, C, and
meet a request to have C appear in the middle
of the table. This might be desirable for
certain ad hoc reporting tools, which tend to
display the columns by default in the order a
SELECT * would return them. In the past, this
reordering was not really possible, but I could
Rename the table to something else,
say T_TBL
Add to this table the new column, which
would appear at the end of the column list
Create a view or an editioning view named
T that explicitly selects the columns in the
right order
Revoke the grants on T_TBL and issue
those grants on the view T
Update any scripts that create indexes,
triggers, constraints, and the like on this
table to reference table T_TBL
That process would make the column
seem to appear in the middle of the table,
but at the cost of a lot of work. Now,
however, reordering columns has become
rather simple. I can rely on the documented
fact (not a trick but, rather, documented
behavior) that any column that is set to be
visible after being invisible will appear as
the last column in the table from a SELECT *
perspective. So to do the logical reordering,
I need to first hide columns D and E and
then add column C. At this point, column C
will appear to be right after column B. Next
I unhide columns D and E, and they will
appear after column Clogically. The fol-
lowing shows the column hiding, adding,
and unhiding as well as a query result that
shows the logical order of the columns:
SQL> alter table t modify
2 ( d invisible, e invisible );
Table altered.
SQL> alter table t add c int;
Table altered.
SQL> alter table t modify
2 ( d visible, e visible );
Table altered.
SQL> desc t

Name Null? Type

A NUMBER(38)
B NUMBER(38)
C NUMBER(38)
D NUMBER(38)
E NUMBER(38)
(Note that on disk the columns will really
be stored as A, B, D, E, and C.)
You can read more about invisible
columns in Oracle Database Administrators
Guide 12c Release 1 (12.1), Chapter 20,
Managing Tables, at bit.ly/1bEMjxa.
SQL> exec pkg.p
PL/SQL Call Stack
object line object
handle number name
0x6e891528 4 procedure OPS$TKYTE.PRINT_CALL_STACK
0x6ec4a7c0 10 package body OPS$TKYTE.PKG
0x6ec4a7c0 14 package body OPS$TKYTE.PKG
0x6ec4a7c0 17 package body OPS$TKYTE.PKG
0x6ec4a7c0 20 package body OPS$TKYTE.PKG
0x76439070 1 anonymous block
BEGIN pkg.p; END;
*
ERROR at line 1:
ORA-06501: PL/SQL: program error
ORA-06512: at "OPS$TKYTE.PKG", line 11
ORA-06512: at "OPS$TKYTE.PKG", line 14
ORA-06512: at "OPS$TKYTE.PKG", line 17
ORA-06512: at "OPS$TKYTE.PKG", line 20
ORA-06512: at line 1
Code Listing 1: Output from DBMS_UTILITY.FORMAT_CALL_STACK, plus error message
MJ14_AskTom.indd 56 3/28/14 1:48 PM
57 ASK TOM
ORACLE MAGAZINE MAY/JUNE 2014
IMPROVED INTROSPECTION
Oracle database application developers have
had access to three built-in functions to figure
out Where the heck am I? in their code:
DBMS_UTILITY.FORMAT_CALL_STACK
DBMS_UTILITY.FORMAT_ERROR_
BACKTRACE
DBMS_UTILITY.FORMAT_ERROR_STACK
These routines, although helpful, were
of somewhat limited use. Lets look at the
FORMAT_CALL_STACK routine to see why.
Here is a procedure, print_call_stack, for
printing out the current call stack:
SQL> create or replace
2 procedure Print_Call_Stack
3 is
4 begin
5 DBMS_Output.Put_Line(
DBMS_Utility.Format_Call_Stack());
6 end;
7 /
Procedure created.
Now, if I have a package, PKG, with
nested functionsand even duplicated
function namessuch as
SQL> create or replace
2 package body Pkg is
3 procedure p
4 is
5 procedure q
6 is
7 procedure r
8 is
9 procedure p is
10 begin
11 Print_Call_Stack();
12 raise program_error;
13 end p;
14 begin
15 p();
16 end r;
17 begin
18 r();
19 end q;
20 begin
21 q();
22 end p;
23 end Pkg;
24 /
Package body created.
Ill see the output in Listing 1 when I execute
the procedure PKG.P.
The bit above BEGIN pkg.p; END; is the
output from DBMS_UTILITY.FORMAT_
CALL_STACK, whereas the bit below is
the error message returned to the client
application. (The error message is also
available via DBMS_UTILITY.FORMAT_
ERROR_BACKTRACE.). As you can see, the
output contains useful information, but to
use it, you would need to parse it, which
can be tricky. The format of these strings,
for example, is not set in stone; the strings
have changed over the years. (I wrote the
OWA_UTIL.WHO_AM_I function, and I did
that by parsing these strings. Trust me, the
strings change over time!)
But theres good news. Starting in Oracle
Database 12c, you have structured access
to the call stack and a series of API calls
for interrogating this structure via the new
UTL_CALL_STACK package.
To demonstrate, Ill rewrite the
print_call_stack function to use UTL_CALL_
STACK, as shown in Listing 2.
With the new print_call_stack function,
I am able to figure out how deep I am in the
code by using UTL_CALL_STACK
.DYNAMIC_DEPTH and can then walk up
the stack, using a loop. I will print out the
lexical depth along with the line number
within the unit I am executing, plus the
unit nameand not just any unit name,
but the fully qualified, all-the-way-down-
to-the-subprogram name within a package
and continuing down to the subprogram
name within a subprogram name within a
subprogram name. For example, running
the PKG.P procedure again results in the
output and the error message in Listing 3.
This time I get much more than just
a line number and a package name, in
contrast to what I got previously with
DBMS_UTILITY.FORMAT_CALL_STACK.
With the UTL_CALL_STACK package, I get
not only the line number and the package
(unit) name but also the names of the
subprograms, and I can see that P called Q
called R called P as nested subprograms.
Also note that I can see a truer calling level
with the lexical depth. For example, I can
see that I stepped out of the package to
call print_call_stack, which, in turn, called
another nested subprogram.
SQL> create or replace
2 procedure Print_Call_Stack
3 as
4 Depth pls_integer := UTL_Call_Stack.Dynamic_Depth();
5
6 procedure headers
7 is
8 begin
9 dbms_output.put_line( 'Lexical Depth Line Name' );
10 dbms_output.put_line( 'Depth Number ' );
11 dbms_output.put_line( ' ' );
12 end headers;
13 procedure print
14 is
15 begin
16 headers;
17 for j in reverse 1..Depth loop
18 DBMS_Output.Put_Line(
19 rpad( utl_call_stack.lexical_depth(j), 10 ) ||
20 rpad( j, 7) ||
21 rpad( To_Char(UTL_Call_Stack.Unit_Line(j), '99'), 9 ) ||
22 UTL_Call_Stack.Concatenate_Subprogram
23 (UTL_Call_Stack.Subprogram(j)));
24 end loop;
25 end;
26 begin
27 print;
28 end;
29 /
Code Listing 2: print_call_stack function, revised and using UTL_CALL_STACK
MJ14_AskTom.indd 57 3/28/14 1:49 PM
58 ASK TOM
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
The new UTL_CALL_STACK package
will be a nice addition to everyones error
logging packages. Of course, there are other
functions in there for getting owner names,
the edition in effect when the code was
executed, and more. See Oracle Database
PL/SQL Packages and Types Reference 12c
Release 1 (12.1), at bit.ly/NhQh6B, for details.
SQL TEXT EXPANSION
The next Oracle Database 12c feature I look
at is SQL text expansion. This new feature
enables you to see the expanded text of a
SQL statement, with the view text included.
This will enable you to see the real query the
optimizer is being challenged with.
Many times I have been asked to tune
a simple query, such as SELECT * FROM V
WHERE X=5, only to discover that the explain
plan for the query is 15 pages long and refer-
ences dozens of objects. To begin to under-
stand that query, I have to understand what V
is and what the SQL text behind the V view is.
And the text of the V view might itself refer-
ence views of views of views. It can be quite a
chore to discover what the actual SQL is. SQL
text expansion makes this discovery simple.
For example, take the simple query
SELECT * FROM ALL_USERS. Under the
covers, ALL_USERSand in fact, the entire
Oracle data dictionaryis a view. To see
which query is really being executed under
the covers, I can use SQL text expansion:
SQL> variable x clob
SQL> begin
2 dbms_utility.expand_sql_text
3 ( input_sql_text =>
'select * from all_users',
4 output_sql_text => :x );
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> print x
X

SELECT "A1"."USERNAME"
"USERNAME","A1"."USER_ID"
"USER_ID","A1"."CREATED"
"CREATED","A1"."COMMON" "COMMON" FROM
(SELECT "A4"."NAME"
"USERNAME","A4"."USER#"
"USER_ID","A4"."CTIME"
"CREATED",DECODE(BITAND("A4"."SPARE1",12
8),128,'YES','NO') "COMMON" FROM
"SYS"."USER$" "A4","SYS"."TS$"
"A3","SYS"."TS$" "A2" WHERE
"A4"."DATATS#"="A3"."TS#" AND
"A4"."TEMPTS#"="A2"."TS#" AND
"A4"."TYPE#"=1) "A1"
As you can see, the new EXPAND_SQL_
TEXT procedure in the DBMS_UTILITY
package delivers SQL text expansion and
makes discovery of the actual query being
executed rather easy.
SQL text expansion is not limited to
views, either. Often you have to tune a
query that is being rewritten by Oracle
Virtual Private Database and you need to
understand what the real SQL text is to
begin to tune it. EXPAND_SQL_TEXT helps
you discover the real SQL text for that query
via the DBMS_RLS package.
To demonstrate this, I set up a small table
with a rather simple Oracle Virtual Private
Database policy on it. I begin by imple-
menting the security function:
SQL> create or replace
2 function my_security_function
( p_schema in varchar2,
3 p_object in varchar2 )
4 return varchar2
5 as
6 begin
7 return 'owner = USER';
8 end;
9 /
Function created.
As you can see, this is a rather simple
function. It will cause each access of
the table or view it is associated with to
includetransparentlythe predicate
WHERE OWNER = USER.
Now Ill continue by defining MY_TABLE
and associating this predicate function with
the table:
SQL> create table my_table
2 ( data varchar2(30),
3 OWNER varchar2(30) default USER
4 )
5 /
Table created.
SQL> begin
2 dbms_rls.add_policy
3 ( object_schema => user,
4 object_name => 'MY_TABLE',
5 policy_name => 'MY_POLICY',
6 function_schema => user,
7 policy_function =>
'My_Security_Function',
8 statement_types =>
'select, insert, update, delete',
SQL> exec pkg.p
Lexical Depth Line Name
Depth Number

1 6 20 PKG.P
2 5 17 PKG.P.Q
3 4 14 PKG.P.Q.R
4 3 10 PKG.P.Q.R.P
0 2 26 PRINT_CALL_STACK
1 1 17 PRINT_CALL_STACK.PRINT
BEGIN pkg.p; END;
*
ERROR at line 1:
ORA-06501: PL/SQL: program error
ORA-06512: at "OPS$TKYTE.PKG", line 11
ORA-06512: at "OPS$TKYTE.PKG", line 14
ORA-06512: at "OPS$TKYTE.PKG", line 17
ORA-06512: at "OPS$TKYTE.PKG", line 20
ORA-06512: at line 1
Code Listing 3: Output from UTL_CALL_STACK, plus error message
MJ14_AskTom.indd 58 3/28/14 1:49 PM
59 ASK TOM
ORACLE MAGAZINE MAY/JUNE 2014
9 update_check => TRUE );
10 end;
11 /
PL/SQL procedure successfully completed.
If I am asked to tune a query against
MY_TABLE, I would very much like to see the
rewritten query to find out what Im dealing
with. Again, the EXPAND_SQL_TEXT proce-
dure comes in very handy:
SQL> begin
2 dbms_utility.expand_sql_text
3 ( input_sql_text =>
'select * from my_table',
4 output_sql_text => :x );
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> print x
X

SELECT "A1"."DATA" "DATA","A1"."OWNER"


"OWNER" FROM (SELECT "A2"."DATA"
"DATA","A2"."OWNER" "OWNER" FROM
"OPS$TKYTE"."MY_TABLE" "A2" WHERE
"A2"."OWNER"=USER@!) "A1"
Not only can I see the expanded SQL but
the text also provides some insight into
how Oracle Virtual Private Database does
its magic. In this case, Oracle Virtual Private
Database simply takes the MY_TABLE refer-
ence in the FROM list and turns it into an
inline view with the predicate appended to it.
The Oracle-hosted online version of this
article at bit.ly/1hHqmiN concludes with a
demonstration of how expanded SQL text
works with Oracle Virtual Private Database
as well as references for additional informa-
tion on Oracle Virtual Private Database and
SQL text expansion (EXPAND_SQL_TEXT).
READ Oracle-hosted online article content
bit.ly/1hHqmiN
ASK Tom
Tom Kyte answers your most difficult technology
questions. Highlights from that forum appear in
this column.
asktom.oracle.com
LEARN more about Oracle Database 12c
oracle.com/database
DOWNLOAD Oracle Database 12c
bit.ly/epBiUG
NEXT STEPS
Tom Kyte is a database
evangelist in Oracles
Server Technologies
division and has worked
for Oracle since 1993. He
is the author of Expert
Oracle Database Architecture (Apress, 2005,
2010) and Effective Oracle by Design (Oracle
Press, 2003), among other books.
MEETING THE DEMANDS
OF TOMORROW
AND DELIVERING
HIGH-PERFORMANCE NOW
Cybernoor Corporation
I
www.cybernoor.com
I
+1.925.924.0400
As a leader in Applications Performance Optimization, Cybernoor can optimize your
Oracle environment to ensure your system performs well and scales. As the data footprint
continues to increase along with the complexity of business requirements, delivering a high
performance system is crucial to the success of the business. Contact Cybernoor to learn
about our proven performance tuning solutions, and ensure your system is prepared for
tomorrows challenges.
MEETING THE DEMANDS
OF TOMORROW
AND DELIVERING
HIGH-PERFORMANCE NOW
MJ14_AskTom_R1.indd 59 4/8/14 11:36 AM
For more information or to place your recruitment
ad or listing contact: tom.cometa@oracle.com
Copyright 2014, Oracle and/or its afliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its afliates. Other names may be trademarks of their respective owners.
Find the Most Qualied
Oracle Professional for
your Companys Future
Introducing the Oracle Magazine
Career Opportunities section -
the ultimate technology recruitment resource.
Oracle Magazine is the largest IT publication in the
world with a total circulation of more than 500,000.
Place your advertisement and gain exclusive and
immediate access to top talent including:
IT Managers, DBAs, Programmers and Developers.
61 IN THE FIELD BY MICHELLE MALCHER
ORACLE MAGAZINE MAY/JUNE 2014
I
f you are a DBA dealing with big databases,
you might think that you already handle
big data. Youve already been managing data-
bases that are in the petabytes for years now,
right? However, big data isnt completely
about the size of the database or the data.
Big data might be structured or unstruc-
tured data, but it is a large quantity of
information and likely coming in at a high
velocity. Business owners need to figure out
what data is valuable to them, and although
it might be difficult for DBAs to determine
what data is valuable, the DBA can assist
in making the data available and helping
connect datasources.
In looking at what big data means and
how important it could be for companies in
the near futureperhaps even becoming the
standard way of doing businessI see an
opportunity for DBAs to step out and expand
their database administration skills to incor-
porate big data administration skills. With
their existing administration skills, including
managing data storage, networking traffic
for data access, security, data loading, and
integrations, DBAs already have a solid foun-
dation for becoming key players in big data.
There are quite a few new skill areas
emerging in the big data arena. A few of
these areas leverage current DBA skills and
can be a starting focus for the big data DBA.
Apache Hadoop. Hadoop is a framework
used for multiple-node processing of data.
With high degrees of parallelism, Hadoop
can be a very scalable platform for pro-
cessing large batches of data very fast. There
are no real tables or structures, so the data
can be imported in various formats, and
there are several ways to connect Hadoop
to Oracle databases. Understanding how to
process data in Hadoop and how to integrate
it with existing datasources are valuable big
data DBA skills to develop.
R. It would be an achievement to under-
stand all of the R scripting and all of the
advanced analytics that can be performed
against the data using R for real data solu-
tions, but R might best be left to the stake-
holders or the data scientist. Learning how
to set up an R environment, however, would
be another administrative focus area for the
big data DBA. In addition, setup and config-
uration are required to support R statistics
and advanced analytics scripts running in
an Oracle Database environment, so DBAs
can expand from administrating back-end R
environments into R scripting.
Integrations. Being able to integrate data is
already an important DBA skill, and with big
data, there is an opportunity to talk more
to the business to understand the data and
what is considered valuable information.
Your new big data skill area might just be
communication with these business teams.
And if you are not regularly connecting dif-
ferent datasources, start by pulling in data
from other sources. Developing a service
for different datasources will prove to be an
invaluable resource for big data projects.
In addition to working with data-
source integrations, consider working
with big data connectors. Oracle Big Data
Connectors connect Hadoop and Oracle
Database, and they enable the use of
XQuery and SQL in Hadoop. With current
DBA skills and learning about connectors,
integrations are a great area for the DBA to
get involved with big data.
Reporting and visualization. Businesses
need to be able to turn big data into a
visual story that can be consumed and
analyzed. To support this kind of reporting,
big data DBAs should learn to administer
reporting tools and servers for big data
analysis. Another valuable skill to develop
is the ability to create the data structures
necessary for reporting. For acceptable
performance, some reporting tools might
require the creation of materialized views or
even separate reporting databases. Tuning
queries for reporting is a typical DBA skill,
and understanding the tuning needs for
different graphing and visualization tools is
important for big data.
As more questions are asked of data
and more data becomes available, devel-
oping big data skills provides new opportu-
nities for every DBA. I will definitely be
using my trusted sources and user group
experts to expand my skill set in Hadoop
and R this year.
JOIN IOUG
ioug.org
JOIN the IOUG Big Data Special Interest Group
ioug.org/sigs
LEARN about
Oracle big data solutions
oracle.com/us/technologies/big-data
NEXT STEPS
DBA to Big Data DBA
Turn your DBA skills into big data skills.
Michelle Malcher
(michelle_malcher@ioug
.org) is president of IOUG.
She is an Oracle ACE
Director with more than
15 years of experience
in database development, security, design, and
administration. Malcher is a coauthor of Oracle
Database 12c: Install, Configure & Maintain
Like a Professional (Oracle Press, 2013) and
Securing Oracle Database 12c: A Technical
Primer (Oracle Press, 2013).
As more questions
are asked of data
and more data
becomes available,
developing big data
skills provides new
opportunities for
every DBA.
MJ14_InTheField_Malcher.indd 61 3/28/14 1:25 PM
2.6x Better
Performance
Industry Standard Java Middleware
SPECjEnterprise2010 Performance Benchmark
SPEC and the benchmark name SPECjEnterprise are registered trademarks of the Standard Performance Evaluation Corporation.
Virtualized results on spec.org as of 5/21/2013 for application and database on one 8-chip server. SPARC T5-8, 27,843.57 SPECjEnterprise2010 EjOPS, pricing on
oracle.com; IBM Power 780, 10,902.30 SPECjEnterprise2010 EjOPS, pricing on ibm.com. Server cost excludes storage and software. Details: oracle.com/sparc-t5.
Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Oracles SPARC T5
Server Cost:
$805,000
Server Cost:
$299,000
Performance:
10,902
Performance:
27,843
IBMs Power7+ AIX
63
ORACLE MAGAZINE MAY/JUNE 2014
ANALYSTS CORNER BY PHILIP J. GILL
O
racle Magazine spoke with Matthew
Eastwood, group vice president,
Enterprise Platform Research, International
Data Corp. (IDC), about current trends in
data center consolidation.
Oracle Magazine: Hardware consolidation in
the data center isnt new, but there seems to
be an uptick in such projects. What are the
drivers behind data center hardware con-
solidation projects today?
Eastwood: Consolidation has been a fact of
life in most data centers for some time. Its a
strategy that IT departments employ to lower
costs, drive more efficiency, and improve the
service levels for the applications that they
host. One new driver for consolidation today
is aging hardware. Systems that are five, six,
or seven years old are good candidates for
replacement and consolidation.
Modern hardware has so much higher
performance that organizations can justify
a return on that investment in a relatively
short time, because todays systems are
also much more capable. If you look at a
two-socket serverand thats a relatively
small server todayit can do more than the
largest supercomputer in the world could
have done in 1999 or 2000. And these pro-
cessors have an increased number of cores
and support much bigger memory and I/O
subsystems as well, so consolidation just
makes sense.
You can also look at hardware consolida-
tion the way you would look at replacing an
older car. It gets to the point where it costs
more to keep a car on the road than to buy
a new one, and its the same situation with
data center servers. Because most systems
are replaced roughly every four or five years,
consolidation projects today tend to be
ongoing efforts. You may have an organiza-
tion that rotates roughly 25 to 30 percent of
its servers every year, and when its doing
that its also doing consolidation.
Oracle Magazine: What other benefits do IT
organizations gain through consolidation?
Eastwood: One big consolidation benefit is
higher reliability. Because there are fewer
systems, theres less running around and
troubleshooting and fixing things that can
cause service outages.
Another consolidation benefit is on the
facilities side. If you have fewer systems, you
need less power, less cooling, and less phys-
ical space in the data center. Data center
space is also very, very expensive, and some
IT organizations are physically taxed on how
much space they use. When new demands
are placed on that data center, IT is faced
with either consolidating that data center so
it can take on the new workload or making a
potentially significant investment in a data
center expansion or retrofit. You hear some
stories now and then where the next addi-
tional server will require an organization to
spend from US$10 million to US$20 million
on a data center expansion, but IT can do
some nip-and-tuck hardware consolida-
tion to create more capacity and avoid that
multi-million-dollar investment.
Another consolidation benefit is the
potential to use IT staff differently, because
when the staff is no longer trying to keep the
older systems running, it can start to focus
on more-strategic and higher-value tasks.
Oracle Magazine: What is the role of
virtualization in hardware consolidation
projects today?
Eastwood: When IT organizations can
abstract applications from the underlying
hardware, they can start to deploy and
consume hardware differently. Before vir-
tualization, a data center would typically
use a one-application-per-server model,
and that server would be configured to
support a peak workload that the organiza-
tion rarely saw. Many servers ran a single
application at 10 or 15 percent utilization
and would peak at 25 or 30 percent, leaving
a great deal of stranded capacity. With
consolidation, IT organizations can stack
these applications on the same system, run
that utilization up to 60, 65, or 70 percent,
and still provide headroom on that server
for peaks. With these kinds of strategies,
were seeing consolidation ratios of 5 to 10
servers down to 1.
What has been happening in many orga-
nizations is that theyve seen an increase
in the number of applications they run,
because virtualization makes it easier to
build and deploy new applications. This sets
up an opportunity for more consolidation
downstream by running all those new appli-
cations on fewer hardware devices. With
massive amounts of capability and a growth
in applications, consolidation makes even
more sense for most organizations.
LEARN more about consolidation with
Oracles SPARC servers
bit.ly/1qVkzel
NEXT STEPS
Philip J. Gill (philipjgill@gmail.com) is a
freelance writer and editor based in San
Diego, California.
IDC (idc.com) is a global provider of
market intelligence, advisory services, and
events for the information technology,
telecommunications, and consumer
technology markets.
Doing Better with Less
New systems and more applications help drive many of
todays data center consolidation projects.
Consolidation has
been a fact of life in
most data centers
for some time.
MJ14_Analyst.indd 63 3/28/14 1:31 PM
64
MAY/JUNE 2014 ORACLE.COM/ORACLEMAGAZINE
Flashbacks: Culture. Industry. Oracle. Oracle Magazine
Time Capsule
BY RICH SCHWERIN
I
-
H
U
A

C
H
E
N
;

W
I
K
I
P
E
D
I
A

C
O
M
M
O
N
S
YOUR TURN
INTELLIGENCE, ANALYTICS, OR MAGIC
8 BALL: How do you make important
business decisions?
Visit Facebook/OracleMagazine and let
us know. bit.ly/orclmagfb
1898
Industrial
Efficiencies
Mechanical engineer
Frederick Winslow Taylor
applies operational analy-
sis to fix mass production
problems at Bethlehem
Steel. And with that, the
lucrative field of manage-
ment consulting is born.
Decision Support
With US$2 million a year in DARPA
funding, the Massachusetts
Institute of Technologys Project
MAC (Multiple Access Computers)
launches one of the first decision
support systems using Teletype
Model 35 terminals. Earplugs recommended.
(Hear why at bit.ly/1mxbHMu.)
1978 Executive Info
Hello, IT? Get me those
latest figures . . .
Among the first executive information systems, Lockheed-Georgias
management information and decision support system is maintained by
analysts for senior executives.
1979 Oracle 2
Version 2 of the Oracle RDBMS allows for
basic SQL functionality including queries and
joins. And the seed for modern business
analytics is planted.
1997
Oracle Discoverer 3.0
Oracle Discoverer enables business users to
study and analyze complex data stored in data
warehouses and data marts, and supports ad
hoc querying and decision-making.
2008
Measure. Analyze.
Perform.
Oracles business intelligence and
enterprise performance management
products and technologies support
organizations by making information
available across the enterprise and by
helping them plan and achieve their
performance goals.
1
9
6
3
2
0
1
1
Excellence in
Analytics
Oracle Exalytics Business
Intelligence Machine (now
named Oracle Exalytics
In-Memory Machine), an
engineered system built
on in-memory technology,
delivers business analytics
at the speed of thought.
Fasten your thinking caps.
1999
Analyze This
Dominic Manetta: Times
are changing. Youve got to
change with the times.
Paul Vitti: What, am I
supposed to get a website?
from Analyze This (Warner
Bros., 1999). Managing
change can be stressful.
MJ14_TimeCapsule.indd 64 3/28/14 1:42 PM
Copyright 2013, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Oracle Cloud
Applications
ERP
Financials
Procurement
Projects
Supply Chain
HCM
Human Capital
Recruiting
Talent
CRM
Sales
Service
Marketing
More Enterprise SaaS Applications
Than Any Other Cloud Services Provider

You might also like