08 April 2011

Happy Birthday, PL/SQL Challenge!

One year ago today, we launched the PL/SQL Challenge. And now, some 260 quizzes later, the PL/SQL Challenge has turned into one of the most frequently visited sites on the Internet for Oracle technologists who want to deepen, extend and demonstrate their expertise in the Oracle PL/SQL language.

I must admit that when I look back over the last year, it is easy for me to see that I really had no idea what I was getting into when I decided it would be very "cool" to offer a daily quiz.

Easy to say. Hard to do! Hard to write interesting, bug-free quizzes. Hard to build a website that makes it easy to play quizzes, see results, and learn from quizzes. Hard to suddenly be responsible for a production, 24x7 application.

But it was and still is worth it. In fact, the PL/SQL Challenge to be one of the most interesting and rewarding projects I've ever worked on - and I fully expect that it is only going to get more interesting and more rewarding in the coming years.

While the PL/SQL Challenge has certainly kept me busy, it has taken the efforts of many other people to make the PL/SQL Challenge what it is today. And so my deepest thanks and gratitude go out to:
  • PL/SQL Challenge players: without your interest and daily efforts, the website would be of little value. I have been truly amazed at the level of engagement by so many Oracle technologists around the world. We have created a new kind of community, one which I hope to grow in many ways in the coming year.
  • Apex Evangelists: John Scott, Dimitri Gielis and Paul Broughton have been absolutely key to both launching the PL/SQL Challenge website and keeping it up and running. If you ever need any kind of help with APEX development, I encourage you to consider hiring Apex Evangelists.
  • Our reviewers, Michael Brunstedt, Ken Holmslykke, Darrel Hurley: In the early months of the PL/SQL Challenge, we were quite honestly plagued by mistakes. I reviewed the quizzes myself (and didn't even put in place a requirement to build and run verification code for each quiz) - which is a foolish and doomed strategy. Once I had independent reviewers, the number of mistakes plummeted.
  • Our premier sponsors: as you all know, the PL/SQL Challenge is completely free, so sponsors play a critical role in supporting this initiative. Thank you, O'Reilly Media! Thank you, Quest Software! Thank you, Oracle Technology Network! Thank you, ODTUG! (Note: later this year, I plan to offer a membership option to the PL/SQL Challenge. Pay a membership fee, get access to member-only and very fantastic features!)
  • Finn Ellebaek Nielsen: Finn helped me launch the PL/SQL Challenge and while he could not stay on the project after the initial months, his contributions without a doubt helped ensure the success of the PL/SQL Challenge.
Another aspect of the PL/SQL Challenge that gives me enormous satisfaction is that it has provided a pathway for my son, Eli, to get started in his new career as a developer. He has done a truly fantastic job, especially considering that he started with no background or education in computer programming, and I haven't really given him much in the way of formal training.

Ah, there's so much more to say - but I am kind of busy right now implementing version 2 of the PL/SQL Challenge, which will (I predict) amaze and challenge you in ever new ways. So I am going to get back to work.

Please feel free to add your comments about how the PL/SQL Challenge has helped you in your career as an Oracle technologist (and any ideas you have for improving the site).

Warm regards,
Steven Feuerstein

07 April 2011

But NO_DATA_FOUND was raised in 6 April quiz! (2163)

The explanation for the 6 April quiz explained why the NO_DATA_FOUND exception would not be raised when the single row and bulk FETCH statements were executed. Yet the correct answer clearly showed that NO_DATA_FOUND had been raised.

Well, that was confusing - and many players wrote to tell us so. Our apologies!

The explanation was incomplete. We have now added the following text:

The reason....that the correct answer displays "NDF" is that Oracle also raises the NO_DATA_FOUND exception when you try to "read" an element in a collection at an undefined index value. As a result, when Oracle executes this line:
sys.DBMS_OUTPUT.put_line (tab (1).dummy);
NO_DATA_FOUND is raised, since the collection is empty (there is no element at index value 1). 

Hopefully all is now clear. Thanks for "keeping us honest."

05 April 2011

Participants in the 2011 Q1 Playoff

The following players have qualified for participation in the 2011 Q1 playoff. There are three categories of players: those who qualify by ranking (top 25), those who qualify through correctness, and wildcard entries. Check the FAQ to read the details on how the latter two groups are selected.


Rank Name Qualified Through
1 Frank Schrader Ranking
2 _Nikotin Ranking
3 Dennis Klemme Ranking
4 Filipe Silva Ranking
5 Pavel Zeman Ranking
6 Viacheslav Stepanov Ranking
7 Christopher Beck Ranking
8 Elic Ranking
9 Gary Myers Ranking
10 Jeff Kemp Ranking
11 mentzel.iudith Ranking
12 Justin Cave Ranking
13 Sean Stuber Ranking
14 kowido Ranking
15 Siim Kask Ranking
16 Spoon Ranking
17 xtender Ranking
18 Randy Gettman Ranking
19 Marcus Matzberger Ranking
20 Yuriy Pedan Ranking
21 Thierry Poels Ranking
22 Michal Pravda Ranking
23 Joaquin Gonzalez Ranking
24 Mike Pargeter Ranking
25 Peter Hraško Ranking
28 Dalibor Kovac Correctness
29 Kevan Gelling Correctness
34 Jure Mekis Correctness
39 Kim Berg Hansen Wildcard
41 V Vandana Patel Wildcard
45 Pavel Mitrofanov Wildcard
50 Lutz Bueschler Wildcard
51 Niels Hecker Wildcard
53 Ismayil Huseynli (SAYBERNET) Wildcard
55 Morten Braten Wildcard
57 Matthias Rogel Wildcard
68 Urs Metzger Wildcard
77 Hrvoje Torbašinovic Correctness
105 Dominic Brooks Correctness
107 Anna Onishchuk Correctness
169 Natarajan-wbt Correctness
193 pinkal soni Wildcard
195 maulwurf Correctness
246 JerryQ Correctness
726 Todd Aron Correctness

The distrbution of participants by country is:

Country Participants
Germany 8
United States 5
Russia 4
India 3
United Kingdom 2
Croatia 2
Ireland 2
Czech Republic 2
Australia 2
Slovakia 1
Belarus 1
Denmark 1
Estonia 1
Spain 1
Azerbaijan 1
Israel 1
Belgium 1
Isle of Man 1
Ukraine 1
Portugal 1
Singapore 1
Norway 1
Slovenia 1
*No Country* 1

Congratulations to all players who have qualified, especially those who placed in the top 25 ranking for the quarter! We will announce the date and time of the playoff soon.

Quiz Status for 4 and 5 April

The PL/SQL Challenge experienced lengthy downtime, starting at approximately 20:00 4 April and lasting till approximately 9:00 5 April.

The rule for the PL/SQL Challenge is that if the site is unavailable for at least four hours in a day, the quiz results are not counted in ranking.

We know that players were not able to submit answers on 4 April, so results for yesterday (4 April) are voided.

We will probably void results for 5 April as well, but it is possible that everyone will be able to take the quiz with the time remaining. If we do not have reports of being unable to submit an answer before end of day, we will use the answers for ranking purposes.

Our apologies for the disruption in access to the PL/SQL Challenge.

Steven Feuerstein

04 April 2011

PL/SQL Challenge website unavailable from 9:15 PM UTC

Due to some problems at the service provider, the PL/SQL Challenge website went down at 9:15 PM UTC (aka, 19:15). At this time, it looks doubtful that it will come back up before the end of the day.

But, hey, anything's possible!

The rule for voiding results of a day's quiz is that the website is down for at least four hours. That will not be the case today, so the results of the quiz will be counted.

So if you have not yet answered the quiz, please check back before midnight UTC (if you can). Hopefully no one will miss submitting their answer.

Our apologies,
Steven Feuerstein