The Oracle ACE programme

I’m proud to be one of the Oracle ACE Directors. Watch the video for some viewpoints on the Oracle ACE program from both Oracle and other Oracle ACEs.

JSON_TABLE or XMLTABLE – comparison with geocoding

Previously I've demonstrated how to use function XMLTABLE to query Google maps routing directions. Now Oracle version has function JSON_TABLE to do similar querying on JSON data rather than XML data. So let's try that out and spot some differences...

For this test we'll use the Google maps geocoding rather than routing directions and try to geocode the address of Oracle headquarters. If we call the Google api with instructions (more...)

Oracle OpenWorld 2014

Less than 3 weeks left before the biggest Oracle event of the year kicks in - and I bet, Oracle OpenWorld'14 will impress anybody (as usual). I am honored to be selected as one of speakers there. Here are my two talks:

- UGF4428 "Expanding SQL Horizons: PL/SQL User-Defined Functions in the Real World"
  Sunday, Sep 28, 1:30 PM - 2:15 PM
  Moscone South - 310

- CON4429  "Calling SQL from PL/SQL the (more...)

Collect only actionable data

We are collecting more and more data, but using less and less.

You only need data for two reasons:

  • To take action based on the data
  • To store for possible future reference

Every time I shop online or interact with a support service, I’m inundated with requests to review and answer surveys. Not much of this is useful. If I rate your support staff 7 out of 10, what action will you take? Do not (more...)

Pipelined Functions mit postgres

In Oracle dienen pipelined table functions dazu, PL/SQL collections als Tabellen zu verkleiden und darauf mit einfachem SQL zugreifen zu können. Hier ein kleines Beispiel dazu, wie man in postgres ein ähnliches Verhalten erreichen kann:

create or replace function f_pipeline_test(lines_limit int)
returns table (
table_schema text
, table_name text
) as

declare sqltext text = 'select table_schema::text, table_name::text
from information_schema.tables
where table_schema = ''pg_catalog''
limit ' || lines_limit;


return query
execute sqltext;


Using Post-Authentication to run process after APEX login

A frequent requirement, and hence frequent question on the forums is
How do I run procedure x after the user has logged in?
This is often required for such tasks as determining user access, such as populating a restricted Application Item relating to a role like F_IS_ADMIN based on the username defined in substitition string APP_USER

Those new to APEX and unfamiliar with certain concepts may consider using an Application Computation, firing "On New Instance (more...)

Unkokumentierter Result_Cache-Hint-Parameter in

Christian Antognini weist in seinem Blog darauf hin, dass der Hint result_cache in einen Parameter erhalten hat, mit dessen Hilfe man festlegen kann, nach wie vielen Sekunden ein Ergebnis aus dem result cache gelöscht werden soll, auch wenn sich das zugrunde liegende Objekt nicht geändert hat. Dieser Parameter SNAPSHOT wird in der offiziellen Dokumentation nicht erwähnt.

Oracle 12c Row Pattern Matching: Beat the Best Pre-12c Solutions at OpenWorld!

Catchy title, don’t you think? My session has been moved to Monday 4 P.M., in direct conflict with Tom Kyte – and Keith Laker, who asked me to present in the first place. Avoid the lines: come see the MATCH_RECOGNIZE clause push great pre-12c solutions into retirement. As a bonus, be the first person on your block able […]

E-Business Customers

It seems the Oracle E-Business Suite stymies newbies. It’s complex and requires some research before you try to develop customization.

Having just fielded a question about how to manage, search, create and update customers for a third party order entry system, I was surprise that they didn’t know about Oracle’s Trading Community Architecture (TCA). They likewise didn’t know there was already a documented process, like this process defined in the Oracle Trading Community Architecture User (more...)

Offshore Mismatch

Why do offshore projects fail? Because they have too many junior offshore people and too many senior onshore people.

Offshore MismatchYou need offshore senior people to mentor the juniors, and you need to train onshore junior people.

This illustration is from tomorrow’s edition of my weekly “Technology That Fits” newsletter. Sign up to get a weekly tip for using IT successfully.



The curious problem of Apex login page session expiration

Always check out the original article at for latest comments, fixes and updates. Did you ever notice that if you open an Apex page requiring authentication but you don't log in during a long time, it may happen that when you finally try, you are bounced back? That happens because even the Apex login page obeys the session expiration rules defined either at the

Jonathan Lewis über In-Memory-Effekte

In den letzten Wochen hat Jonathan Lewis einige Artikel zum Verhalten der in erschienen In-Memory Option veröffentlicht, die ich hier kurz zusammenfasse - hauptsächlich allerdings, um die Links an geeigneter Stelle zu sammeln:
  • In-memory limitation: erläutert einen Fall, in dem die Kombination der In-Memory columnar storage mit der traditionellen Zeilen-basierten Ablage nicht das leistet, was man sich davon versprechen könnte - bzw. was sich der Herr Lewis hätte vorstellen können. (more...)

Designing Door Acoustics

I just watched a video with a very dedicated professional. He was in charge of door acoustics at a major car manufacturer – in effect, his job was to make sure that the door makes a satisfying sound when you close it.

It is this kind of attention to detail that differentiate brands. An Audi shares 80-90% of components with Volkswagen and Skoda, but still manages to command a hefty premium.

Are you building a (more...)

Why is Your Data, Your Brand, Your Customers Important (to you)?

We often talk about how the data is yours, but what does that mean?

We mean what we say.  We don't mix words.  We don't spin words.  It's plain and simple, the data is yours.  The data about who bought what, who watched what, who owns which products, etc. - it's all yours...not ours.  We can't send your customers an email (unless it's from you telling them thank you for their purchase or upselling (more...)

Geo What?

You might hear the term geo something from time to time.  Geospatial is the full word, which means data associated with a particular location.  A location in the world can be identified by a latitude and longitude number.

Maybe you heard the terms geo blocking and/or geo white lists.  Geo blocking means that you want to block a specific location in the world.  A geo white lists would mean that someone only wants to allow (more...)

New Revenue Opportunity for Video Producers and Videographers

I absolutely love it when we're able to generate income for people who share their knowledge through our platform.  Take my technical training videos (on Oracle Application Express) for example.  It's so cool that I can produce a set of videos, upload it into our platform and sell the material to people around the world - and I get to maintain my brand (I'm not lost in a marketplace) on my own website.  Anyone (more...)

Useless Documentation

Not all documentation is created equal. Too much time is spent on formal design documents that are immediately outdated, and too little is spent on writing code comments.

Useless DocumentationMake sure your process requires and rewards good code comments. And make sure your architecture diagrams are kept up-to-date.

This illustration is from my weekly “Technology That Fits” newsletter – sign up here.

5 minutes: Grant Role to Package

The EOUC (EMEA Oracle User Group Community) hosts a special session on sunday during Oracle Open World. This session contains twelve things about Oracle 12c. Each of these 12 things is hosted by a different speaker, so this means that each section is only five minutes long (Strictly guarded by Debra Lilley).
Thankfully I was chosen to be one of the speaker during this special session, very excited and also very scared. (more...)

String-Aggregation im SQL Server

Eine Funktionalität, die in Oracle und postgres schon seit längerer Zeit verfügbar ist, aber im SQL Server noch auf der (connect) Wunschliste steht, ist die String-Aggregation - also die Möglichkeit einer Gruppierung, bei der mehrere Elemente einer Gruppe in einem Feld konkateniert werden (also z.B. alle Mitarbeiter eines Departments in Oracles klassischer EMP-Tabelle). Für den SQL Server gibt es immerhin diverse Möglichkeiten, das Verhalten nachzubilden, und Aaron Bertrand stellt diese Varianten und ihr Verhalten (more...)

Birds don’t make the best ornithologists

This week I listened to episode 44 of one of my favourite podcasts - Inquiring Minds. It was an interview with David Epstein on the 'science of athletes'.

The podcast culminated with some really interesting points regarding the concept of 'talent' - what it really means, how it can be measured or influenced. One particularly interesting basis was the traditional idea that '10000 hours' training leads excellence in any particular skill, vs what's in the (more...)