ADF 12c Courses Now Online 

Once again the ADF PMs have been hard at work to provide us all with great training content. This time in the form of a full online course.

Oracle University has begun the First Global Teach of the Oracle Middleware 12c: Build Rich Client Applications with ADF course online.

This course covers all the useful features of ADF Business Components including  how to build and test reusable business services. After creating the application they drill (more...)

ApacheTomcat: How to sustain planned/unplanned Oracle database downtime & Runtime Load Balancing w UCP

See our brand new white paper 

★ Database as a Storage (DBaaS) vs. Thick Database

A recent addition to my Oracle PL/SQL library is the book Oracle PL/SQL Performance Tuning Tips & Techniques by Michael Rosenblum and Dr. Paul Dorsey.

I agree with Steven Feuerstein’s review that “if you write PL/SQL or are responsible for tuning the PL/SQL code written by someone else, this book will give you a broader, deeper set of tools with which to achieve PL/SQL success”.

In the foreword of the book, Bryn Llewellyn writes:

The (more...)

The Internet of What?

Gartner has just released another iteration of their classic “Hype Cycles.” They are up to more than 100 different topics now, but one interesting graph is one is the one for Emerging Technologies.

Source: Gartner Hype Cycle for Emerging Technologies 2014

I want to comment on a couple of points from this graph:

  • Internet of Things as peaking – completely agree. Everybody is talking about it but what do we have? An internet-connected smoke alarm.
  • Big (more...)

Book Review: “Write the Perfect Book Proposal”

I’m not in favour of calling books a “must-read”, but if you want to get your own book commercially published, I have to say you must read Write the Perfect Book Proposal: 10 That Sold and Why, 2nd Edition.

The main force of this book is that it explains the publishing industry from the inside: What a publisher is looking for. The authors honestly explain what the publisher will and will not do, and that (more...)

UKOUG Tech 14 in Liverpool

I’ll be going to the UKOUG Tech 14 conference in Liverpool in December to give one of my favorite presentations: “APEX or ADF? From Requirements to Tool Choice”. I’m also leading the Development Tools roundtable, which is always lively at the UKOUG conference. If you want to discuss your options as a developer in the Oracle world, UKOUG Tech 14 is the place to be.

APEX or ADF? From Requirements to Tool Choice
APEX or (more...)

APEX: Save a user’s checkbox selection on local PC

You want a checkbox item on a page which is a preference, you want it to be remembered for the user across login sessions, but you don’t want the overhead of storing it in a database table. You might choose to store the value in a cookie instead. It may be lost (e.g. when the user clears their cookies or changes to a different browser or another computer), but we don’t mind – it’s just a preference.



ORA-27476: "SYS.MY_FANCY_JOB_CLASS" does not exist

Always check out the original article at for latest comments, fixes and updates. Ever exported a whole schema containing DBMS_SCHEDULER jobs with non-default job classes? Chances are that you hit the following error message when you attempt to import the dump later on.   ORA-39083: Object type PROCOBJ failed to create with error: ORA-27476: "SYS.MY_FANCY_JOB_CLASS"

Glorious mysteries of Oracle’s web site

God or Larry knows why Oracle feels the compelling need of changing some of its page links over time. Oracle Application Express' main page URL is now: It was: May be I am a bit slow in picking up these changes, I don't really know if this

Definition von AWR Intervallen

Doug Burns hat dieser Tage in seinem Blog zwei Artikel zum Thema der Definition von AWR Intervallen veröffentlicht. Erinnerungswürdig scheinen mir dabei vor allem die folgenden beiden Punkte:

  • in einem produktiven System ist es sinnvoll, die Retention der AWR Snapshots auf einen deutlich höheren Wert als den default von 8 Tagen zu setzen (35-42 Tage oder gleich: unbegrenzt). 
  • weniger sinnvoll ist es, die AWR Intervalle selbst zu verkürzen: also vom Standard-Intervall von 1h auf (more...)

Are Web Service a Mistake?

Quick, how many different Web Service specifications are there?

  1. less than 20
  2. between 20 and 40
  3. more than 40

I was in doubt whether the answer would be 1) or 2) – after all, there is a lot of WS-* stuff. Turns out the answer is 3) – there are currently 50 web service specifications.

A technology with 50 specifications is unlearnable. The basics of web services is simple and useful, but the IT industry (more...)


Eigentlich stand auf meinem Erledigungszettel die Idee, eine kurze Untersuchung der in neu eingeführten APPROX_COUNT_DISTINCT Funktion durchzuführen, mit deren Hilfe man die ungefähre Anzahl der distinkter Werte in einer Spalte effizient ermitteln können soll - aber Luca Canali hat gerade einen entsprechenden Artikel veröffentlicht und so genau wie der Herr Canali hätte ich mir den Fall ohnehin nicht angeschaut. Hingewiesen wird im Artikel unter anderem auf folgende Punkte:

ALTER INDEX … COMPUTE STATISTICS ist wirklich deprecated…

Im OTN-Forum wurde dieser Tage die Frage gestellt, ob nach einem Index-Aufbau ein expliziter Neuaufbau von Statistiken erforderlich ist. In einem Kommentar erwähnte ein Diskussionsteilnehmer sein Standardverfahren des Aufrufs von ALTER INDEX ... COMPUTE STATISTICS nach dem Index-Aufbau. Nun hatte ich eine relativ klare Vorstellung von den Unterschieden bei der Statistikerstellung unter Verwendung des (veralteten) ANALYZE-Kommandos (für Tabellen) und dem (aktuellen) Aufruf von DBMS_STATS.GATHER_TABLE - aber keine Ahnung, wie die Statistiken aussehen, die durch ALTER (more...)

So you want to be a Presenter? Abstract selections for 2015 are open!

You say you want to present and share your knowledge with the world (or at least your little corner of the world)… Your boss says there is no $$$ to pay for any technical conferences… You want to be a rock star and have adoring fans “LIKE” your blog or web site… Have I got […]

Learning It All

I was recently advising a transition project where a customer was switching support and maintenance supplier. This means that one organization must take over a system that has been maintained by another organization for a number of years.

A lot of information is lost in these transitions because knowledge of the problem domain has been accumulated in the heads of developers over many years. This loss cannot realistically be mitigated.

But sometimes, specific information about (more...)

Avoid UTL_FILE_DIR Security Weakness – Use Oracle Directories Instead


The UTL_FILE database package is used to read from and write to operating system directories and files. By default, PUBLIC is granted execute permission on UTL_FILE. Therefore, any database account may read from and write to files in the directories specified in the UTL_FILE_DIR database initialization parameter [...] Security considerations with UTL_FILE can be mitigated by removing all directories from UTL_FILE_DIR and using the Directory functionality instead.

© Eddie Awad's Blog, (more...)

The Art and Science of Estimates

I’m currently estimating the effort for a piece of software. With 20 years of experience under my belt, I don’t find estimating hard any longer. But back when I started out, I was terrified whenever I was asked to provide an estimate.

In most organizations, too much of the estimating is art and too little is science. Experienced developers can produce good, realistic estimates, but these are often treated as individual efforts and no organizational (more...)

New in Oracle 12c: Querying an Associative Array in PL/SQL Programs

I was aware that up to Oracle 11g, a PL/SQL program wasn’t allowed use an associative array in a SQL statement. This is what happens when I try to do it.

SQL> drop table test_array purge;

Table dropped.

SQL> create table test_array as
  2  select level num_col from dual
  3  connect by level <= 10;

Table created.

SQL> select * from test_array;


10  (more...)

Are You Using BULK COLLECT and FORALL for Bulk Processing Yet?

Steven Feuerstein was dismayed when he found in a PL/SQL procedure a cursor FOR loop that contained an INSERT and an UPDATE statements.

That is a classic anti-pattern, a general pattern of coding that should be avoided. It should be avoided because the inserts and updates are changing the tables on a row-by-row basis, which maximizes the number of context switches (between SQL and PL/SQL) and consequently greatly slows the performance of the code. Fortunately, (more...)

“The Dirty Dozen – ADF Migration to 12c in the IKB” I’m a speaker at DOAG2014:


Today the official program is online for DOAG conference 2014 in Nuremberg. My presentation is confirmed  “The Dirty Dozen – ADF Migration to 12c in the IKB”.

I will speak over our experiences with following

  • provide user software
  • install servers
  • iterative test migrations
  • migration plannig
  • real migration
  • and the problems and pitfall’s we find on our way

If you speak german and you are interested in some of this, you should come and attend my (more...)