Is MERGE a bug?

A few years back I pondered whether DISTINCT was a bug.

My premise was that if you are depending on DISTINCT to return a correct result set, something is seriously wrong with your table design. I was reminded of this again recently when I ran across Kent Graziano's post on Better Data Modeling: Are you making these 3 beginner mistakes in your data models?. Specifically:
Instead of that, you should be defining a natural, or (more...)

Jumpstarting Development on the Cloud – Part 2 : Packaging and Build

This blog entry by Oracle's A-Team will show you how to use Maven to compile, package and deploy a java application to JCS-SX. Check it out here.

#C15LV Collaborate’15 updates!!

Hi All, Last week, I registered my presence at Collaborate’15 in Las Vegas as a speaker, attendee and at Oracle demo booth duty. It was an awesome experience meeting some polished brains and smart minds. After the first day of registration, I attended the #DBIM12c session by Maria Colgan, #DB12c Multitenant by John McHugh and #Exadata session … Continue reading

Oracle Developer Cloud Service Webcast – April 30, 2015 @ 9 AM PDT


   Oracle Cloud Developer Webcast Series


As part of the Oracle Cloud Developer Webcast Series this session will showcase Oracle's new Developer Cloud Service (DCS). DCS provides you with a turnkey, secure development platform hosted in the cloud. This session will show you how you can have a complete DevOps solution spun-up within seconds providing you everything you need to design, develop, build and deploy your applications in the cloud with team collaboration at (more...)

The Oracle APEX Talkshow
Not only has Juergen been adding style, pride and awareness to laptops worldwide, he's also launched a podcast.

I love podcasts. I listen to a few good science shows every week and I've been looking for some decent software related shows, and this one hits the subject matter right on the head.

Juergen states he hopes to interview many developers from the APEX team, offering perhaps a recording per month. Not limiting (more...)

Quote of the Day: We cannot direct the wind…

We cannot direct the wind… But we can adjust the sails! Are you heading where you want to, or letting the wind blow you about? Talk the helm of your life and set a course. Happy Monday! Kent The Data Warrior P.S. It is almost time for the 2nd Annual World Wide Data Vault Consortium […]

Oracle Developer Cloud Service 15.2.2 Released

We're excited to tell you that we've just released Oracle Developer Cloud Service 15.2.2.


This release includes many new features including a New Web UI with support for responsive design. Additional features include:

  • Embedded user assistance
  • New global search across source code, issues, wikis and more
  • Support for markdown in issues and wikis
  • Redesigned merge request UI along with conflict resolution
  • Web based-code Git merge for approved merge requests
  • New build statistics (more...)

apeks sticker, check.

There are some stickers are out there causing quite the sensation in the Oracle APEX Twitter community. Check it out and join the conversation.

A couple of weeks ago I received my sticker from the master dealer, Juergen, so I thought I'd share my pimped up laptop, complete with sticker friend.

Pimp my laptop
Fun fact: the photo was taken on the same grass that formed my blog's title image.

And now I also learn (more...)

Postgres FDW-Zugriff auf Oracle

Ein kleines Syntaxbeispiel zur Definition eines Foreign Data Wrappers (FDW) in postgres. Ein paar grundsätzlichere Erläuterungen zum Thema hatte ich hier vor längerer Zeit notiert, dabei aber nur FDW-Definitionen mit Zugriff von einer postgres-Datenbank auf eine andere postgres-Datenbank untergebracht. Hier folgt eine kurze Zusammenfassung der Schritte, die nötig waren, um einen postgres-FDW-Zugriff auf eine Oracle-Datenbank einzurichten:

1. Download der zugehörigen Komponenten, die hier zu finden sind. Der Download enthält die Kontrolldatei (oracle_fdw.control) und (more...)

APEX 5: forgot the images?

On my play environment I usually use Oracle APEX with the Embedded PL/SQL Gateway, just because it's so easy.
When a new version of APEX is released, just like everybody else, I upgrade my play environment.
After the apexins.sql script is run, I always want to start playing with it immediately. Usually it is at this point where I just see a blank page... scratching my head wondering why it is not running,... having (more...)

Table Functions (Steven Feuerstein)

Wenn ich an PL/SQL denke, ist meine erste Assoziation dazu der Name Steven Feuerstein. Nun denke ich nicht furchtbar oft on PL/SQL, aber wenn der Herr Feuerstein über ein Thema schreibt, dem ich mit einer gewissen Regelmäßigkeit begegne, dann ist das allemal eine Verlinkung und Zusammenfassung der zugehörigen Artikel wert:

Oracle Application Express (APEX) 5.0 available for download

The best Oracle Application Express edition of all times has finally landed. Info & details in Apex's official blog. Enjoy.

Welcome to the Oracle Developer Cloud Service Blog

This will be the traditional first blog entry that you see in any blog.

In this blog the Developer Cloud Service development team is going to post entries about our service.

We'll keep it technical and informative - so add us to your favorite blog tracker to keep up to date with the latest news.

If you are still wondering what the developer cloud service is all about check out this quick video:


See (more...)

Collaborate’15 A New View of Database Views

Thanks to everybody who visited my presentation! Here is a link to view and/or download the slide set:

Feel free to ask questions!

OTN Tour em Portugal

O Oracle Users Group Portugal tem boas notícias: "Lisboa vai receber no dia 21 de Maio de 2015 uma conferência realizada pelo OUGPT em colaboração com o Oracle OTN no auditório do Instituto Superior Técnico (Campus da Alameda, Centro de Congressos do IST). O painel de speakers para o dia inclui 4 Oracle ACE Directors. Não existe qualquer custo associado para a presença na conferência. Apesar disso o registo é obrigatório."


Just been tearing my hair out on some unexpected SQL behaviour in SQL Developer.
Eventually I managed to get to the root cause of the problem as illustrated below.


SQL> var ps number
SQL> exec :ps := 4001644945;

PL/SQL procedure successfully completed.

SQL> select :ps from dual;



SQL Developer v3.2 and v4.0 via “Run As Script(F5)”:

var ps number
exec :ps := 4001644945;
select :ps from dual;

anonymous  (more...)

Things learnt during APEX5 Universal Theme seminar by Shakeeb

Tonight I stayed up way past my bedtime (well, in the days of writing a book and Kscope presentations, midnight isn't that late).

I watched and listened to Shakeeb Rahman from the APEX team on an ODTUG webinar, which was recorded and available for ODTUG members.

I did, however, take some notes. I thought I'd share:



No need for css/javascript, or design

Not shy about reference to Douglas Adams.

Theme can be (more...)

Truncate Table Cascade

Eine nützliche Ergänzung in 12c, die mir bisher entgangen war, ist das TRUNCATE CASCADE, mit dessen Hilfe man eine Parent-Tabelle entleeren kann und zugleich alle Datensätze in via FK verbundenen Tabellen löscht. Das funktionierte bislang nur mit DELETE - und auf DELETE verzichte ich gerne, wo immer das möglich ist. Dazu ein kleines Beispiel:

drop table child;
drop table parent;

create table parent(
parent_id number primary key

insert into parent(parent_id)
select rownum
from dual

SQL Navigator 7.2 was released

"New in This Release: Added Oracle 12c new features Added EurekaLog exception handling Improved multiple tasks handling"

Speed Up Development with Logger: Generate a Template

Instrumentation of PL/SQL code is essential. My favourite tool to instrument PL/SQL is Logger.
Martin Giffy D'Souza wrote a few blogs on how to speed up development with Logger and I want to chime in with my own productivity booster.
What I have written is a PL/SQL package that will generate a Procedure or Function body with all the calls to Logger. This includes all the arguments, or at least the IN and IN/OUT arguments.