Skip to main content

Rankings for 2017 PL/SQL Championship on the Oracle Dev Gym

Thirty-six Oracle Database technologists competed on March 22nd in the 2017 PL/SQL Annual Championship at the Oracle Dev Gym. With five tough quizzes by yours truly, the competition was fierce! Congratulations first and foremost to our top-ranked players:

1st Place: li_bao of Russia
2nd Place: mentzel.iudith of Israel
3rd Place: NielsHecker of Germany

Next, congratulations to everyone who played in the championship. We hope you found it entertaining, challenging and educational.

Finally, our deepest gratitude to our reviewer, Elic, who has once again performed an invaluable service to our community.

In the table below of results for this championship, the number next to the player's name is the number of times that player has participated in a championship. Below that table, you will find another list showing the championship history of each of these players.

Rank Name Total Time % Correct Total Score
1 li_bao (4) 27 m 78% 5592
2 mentzel.iudith (4) 44 m 78% 5520
3 NielsHecker (4) 43 m 76% 5374
4 Oleksiy Ponomarenko (2) 44 m 76% 5370
5 Stelios Vlasopoulos (4) 44 m 73% 5220
6 Rimantas Adomauskas (2) 34 m 71% 5112
7 Chad Lee (4) 41 m 71% 5082
8 Maxim Borunov (4) 42 m 71% 5079
9 Karel_Prech (4) 43 m 71% 5076
10 Sartograph (1) 43 m 71% 5074
11 Henry_A (4) 21 m 69% 5014
12 siimkask (4) 26 m 69% 4995
13 msonkoly (3) 44 m 69% 4920
14 JustinCave (4) 27 m 67% 4839
15 Sandra99 (2) 37 m 67% 4801
16 Michal P. (2) 42 m 65% 4630
17 Ivan Blanarik (4) 33 m 63% 4517
18 seanm95 (4) 44 m 63% 4471
19 Joaquin_Gonzalez (4) 30 m 61% 4378
20 Chase Mei (4) 34 m 61% 4364
21 Andrey Zaytsev (4) 41 m 61% 4335
22 Jan Šerák (4) 43 m 61% 4326
23 PZOL (3) 44 m 61% 4320
24 Rytis Budreika (4) 14 m 59% 4294
25 JasonC (3) 28 m 59% 4238
26 pablomatico (1) 22 m 57% 4111
27 Hertha Rettinger (1) 24 m 55% 3950
28 Otto Palenicek (2) 29 m 55% 3934
29 mcelaya (3) 44 m 55% 3870
30 tonyC (4) 40 m 53% 3737
31 Rakesh Dadhich (4) 11 m 51% 3705
32 swesley_perth (2) 23 m 51% 3657
33 Mike Tessier (2) 31 m 51% 3626
35 (1) 24 m 47% 3353
36 patch72 (4) 16 m 45% 3234

Championship Performance History

After each name, the quarter in which he or she played, and the ranking in that championship.

Name History
li_bao 2014:36th, 2017:1st
mentzel.iudith 2014:1st, 2015:2nd, 2016:18th, 2017:2nd
NielsHecker 2014:21st, 2015:1st, 2016:15th, 2017:3rd
Oleksiy Ponomarenko 2016:10th, 2017:4th
Stelios Vlasopoulos 2014:37th, 2015:19th, 2016:24th, 2017:5th
Rimantas Adomauskas 2017:6th
Chad Lee 2014:13th, 2015:28th, 2016:19th, 2017:7th
Maxim Borunov 2015:9th, 2016:17th, 2017:8th
Karel_Prech 2014:4th, 2015:6th, 2016:11th, 2017:9th
Sartograph 2017:10th
Henry_A 2014:32nd, 2016:33rd, 2017:11th
siimkask 2014:15th, 2015:14th, 2016:13th, 2017:12th
msonkoly 2015:15th, 2017:13th
JustinCave 2015:3rd, 2017:14th
Sandra99 2015:28th, 2017:15th
Michal P. 2015:32nd, 2017:16th
Ivan Blanarik 2014:16th, 2015:16th, 2017:17th
seanm95 2014:34th, 2015:4th, 2016:9th, 2017:18th
Joaquin_Gonzalez 2014:26th, 2015:36th, 2016:12th, 2017:19th
Chase Mei 2014:25th, 2015:26th, 2016:3rd, 2017:20th
Andrey Zaytsev 2014:2nd, 2015:5th, 2016:1st, 2017:21st
Jan Šerák 2014:24th, 2015:8th, 2016:7th, 2017:22nd
PZOL 2015:35th, 2017:23rd
Rytis Budreika 2014:18th, 2015:12th, 2016:32nd, 2017:24th
JasonC 2015:42nd, 2016:26th, 2017:25th
pablomatico 2017:26th
Hertha Rettinger 2017:27th
Otto Palenicek 2016:29th, 2017:28th
mcelaya 2015:38th, 2016:34th, 2017:29th
tonyC 2014:31st, 2015:25th, 2016:25th, 2017:30th
Rakesh Dadhich 2014:29th, 2015:31st, 2016:35th, 2017:31st
swesley_perth 2016:21st, 2017:32nd
Mike Tessier 2017:33rd
HotCoder27 2017:34th 2017:35th
patch72 2014:22nd, 2015:11th, 2017:36th


  1. Steven, you have the year incorrect. It should be 2017, not 900yrs in the future (2917). It's in the very first sentence:

    "Thirty-six Oracle Database technologists competed on March 22nd in the 2917 PL/SQL Annual Championship at the Oracle Dev Gym."

  2. Aw, c'mon. Didn't you know I am a visionary? :-) Fixed

  3. Hello Steven,

    The players' countries are missing from the table of all players, both on your blog
    and on the Devgym blog.
    Maybe they can be added, just for the sake of tradition.

    Thanks a lot & Best Regards,

    1. Sorry about that Iudith. I realize the recent posts are inconsistent, but even worse country information is not up to date. Those are drawn from the pre-Oracle move. We can obtain countries from individual Oracle profiles, but doing so en masse for reports is too slow. Working on this problem!


Post a Comment

Popular posts from this blog

Get rid of mutating table trigger errors with the compound trigger

When something mutates, it is changing. Something that is changing is hard to analyze and to quantify. A mutating table error (ORA-04091) occurs when a row-level trigger tries to examine or change a table that is already undergoing change (via an INSERT, UPDATE, or DELETE statement). In particular, this error occurs when a row-level trigger attempts to read or write the table from which the trigger was fired. Fortunately, the same restriction does not apply in statement-level triggers.

In this post, I demonstrate the kind of scenario that will result in an ORA-04091 errors. I then show the "traditional" solution, using a collection defined in a package. Then I demonstrate how to use the compound trigger, added in Oracle Database 11g Release1,  to solve the problem much more simply.

All the code shown in this example may be found in this LiveSQL script.

How to Get a Mutating Table Error

I need to implement this rule on my employees table:
Your new salary cannot be more than 25x th…

Table Functions, Part 1: Introduction and Exploration

August 2018 update: please do feel encourage to read this and my other posts on table functions, but you will learn much more about table functions by taking my Get Started with PL/SQL Table Functions class at the Oracle Dev Gym. Videos, tutorials and quizzes - then print a certificate when you are done!

Table functions - functions that can be called in the FROM clause of a query from inside the TABLE operator - are fascinating and incredibly helpful constructs.

So I've decided to write a series of blog posts on them: how to build them, how to use them, issues you might run into.

Of course, I am not the first to do so. I encourage to check out the documentation, as well as excellent posts from Adrian Billington (search for "table functions") and Tim Hall. Adrian and Tim mostly focus on pipelined table functions, a specialized variant of table functions designed to improve performance and reduce PGA consumption. I will take a look at pipelined table functions in the latte…

Quick Guide to User-Defined Types in Oracle PL/SQL

A Twitter follower recently asked for more information on user-defined types in the PL/SQL language, and I figured the best way to answer is to offer up this blog post.

PL/SQL is a strongly-typed language. Before you can work with a variable or constant, it must be declared with a type (yes, PL/SQL also supports lots of implicit conversions from one type to another, but still, everything must be declared with a type).

PL/SQL offers a wide array of pre-defined data types, both in the language natively (such as VARCHAR2, PLS_INTEGER, BOOLEAN, etc.) and in a variety of supplied packages (e.g., the NUMBER_TABLE collection type in the DBMS_SQL package).

Data types in PL/SQL can be scalars, such as strings and numbers, or composite (consisting of one or more scalars), such as record types, collection types and object types.

You can't really declare your own "user-defined" scalars, though you can define subtypes from those scalars, which can be very helpful from the perspective…