Skip to main content

Check out the Oracle Dev Gym!

Back in April 2010, I started (with the help of many others!) the PL/SQL Challenge, which offered daily quizzes on PL/SQL, along with weekly quizzes on other technologies. In 2014, Oracle acquired the website and I suspended the daily quiz. Writing five new quizzes each week is a lot of work, and I had a big stack of new responsibilities!

But the weekly quizzes continue(d): SQL, PL/SQL, Database Design, Logic and most recently a re-started weekly quiz on Oracle Application Express, made possible by Insum. And Oracle Database technologists kept on using the site to hone their skills. We are rapidly approaching 1,000,000 answers on the site.

That all sounds good, right? So why is the title of this post "Check out the Oracle Dev Gym!"?

Because the PL/SQL Challenge has, for a while, been in dire need or a "reboot"; not just a redesign built around the massively improved APEX5, but also a rethinking of how this quiz platform could best serve the needs of the community.

Rethinking the PL/SQL Challenge

It was clear, especially from the popularity of the daily PL/SQL quiz, that developers like to actively test their knowledge, and compete with others.

It was also clear that lots of people didn't want to compete; they just wanted to learn more about core Oracle Database technologies. For example, some people told me they found the use of the word "Challenge" was off-putting: "I'm not good enough to play the quizzes."

In addition, when we kicked off the PL/SQL Challenge, we were starting from scratch: writing all new quizzes each. We still do that, of course, for our competitions, but we also now have a library of over 2,000 quizzes that the vast majority of Oracle Database developers have never taken.

Yet the current website was not at all geared towards making all those quizzes easy to take, outside of the context of the weekly competitions.  Sure, we'd built a Practice feature into the site, but it was too "heavy" - too complicated, too many toggles and switches....what you see below, for example, is just one of five pages in the Practice wizard. Wow!

In fact, "complicated" is a good way to describe the site all around; it had gotten weighed down with lots of features that people only used occasionally, and got in the way of clean, easy access to our content.

So we decided to rebuild the site using APEX5, the Universal Theme, and all the new goodies in that fantastic rapid application development tool. We also decided it was time to come up with a new name.

But a new name requires clarity around what the site offers its visitors: what makes it unique. So I went off to a remote cabin in the mountains and meditated long and hard. Well, no, actually, I took lots of walks in a nearby park.

And after a while, I had this realization:

You don't visit the PL/SQL Challenge to:

  • get answers to questions - that's what Ask Tom is for (and the OTN Forums).
  • download or run scripts demonstrating features of Oracle Database technology - that's what Live SQL is for.
You go to the PL/SQL Challenge to keep your knowledge and skills fresh, current, strong. 

In other words, you go to the PL/SQL Challenge like you'd go to the gym. So we decided to design the new version of the PL/SQL Challenge around the paradigm of a fitness center. We even have a cool, new logo:

Oracle Dev Gym - Early Adaptor

We are initially making the Oracle Dev Gym available only through the PL/SQL Challenge. We are doing this because the first and most important thing we need to find out is: how do our current PL/SQL Challenge users think of the new approach?

When you visit the home page, you will now see this image on the right:

Click on it to start exploring the Dev Gym.

The Dev Gym runs on the same platform as the PL/SQL Challenge. So when you answer the weekly SQL quiz there, it's the same (well, it sure as heck should be the same) as answering it the "old way".

But you can do so much more, including easily take quizzes on any topic you'd like; takes tests and coding challenges, even set up customized workouts through the Personal Trainer. 

Yes, that's right. The Dev Gym comes with a Personal Trainer. 

I am tempted to tell you more about the Dev Gym, but I really would rather let the site tell its own story - and find out what you, loyal user of the PL/SQL Challenge, think of the new approach. I cannot, however, resist sharing our Exercise page with you:

Tell Us What You Think!

In whatever way is easiest for you:
  • Add a comment to this blog post. 
  • Write me an email: steven dot feuerstein at oracle dot com.
  • Click on the Feedback link in the top right of either site and give us your thoughts (and bug reports).
  • Feel free to tweet about Oracle Dev Gym. Please use #oradevgym.
Don't worry about hurting my feelings. Just give it to me straight.

Game Plan for the Dev Gym

We plan to take the next several months to gather feedback from our users and also go on a wild binge of writing quizzes and attaching them to videos, blog posts and more (check out Personal Trainer and our generated workouts for an indication of how that will improve the Dev Gym experience).

We will also invite you to help us build out all that content by contributing and reviewing content in a community repository being added to the Oracle Learning Library (more to come on that in August).

Then we will announce to the world with great fanfare and widespread acclaim: the Oracle Dev Gym. 

So Is PL/SQL Challenge Going To Disappear?

Not at all!

The Oracle Dev Gym does not offer all the functionality of the PL/SQL Challenge. It takes a long time and careful thought to reimplement a site that has been built up over six years, often in direct response to user requests. We're just getting started.

In addition, I expect that there will be a "hard core" bunch of users who like the traditional site, don't like change, and are not interested in switching to a different style.

Finally, we will continue to use the PL/SQL Challenge to submit, review, edit and approve quizzes for playing. 

Assuming we get a positive response to the Dev Gym, we will gradually shift more and more functionality over (but also keep the new site clean and simple).  But the PL/SQL Challenge will be around for a long time to come.

Run, Don't Walk, To The Dev Gym

If you want to build stronger Oracle Database muscles, if you want to get more flexible when it comes to leverage features packed into SQL and PL/SQL, then head over to the gym and work up a good (virtual) sweat. We offer a tour of the Dev Gym on the site, but here's a link to a video tour in case you just can't wait.


  1. Hello, Steven. Thank you for your work, this site is much easier to use than old one. I even was able to take quizzes from my phone:) The only disappointing thing: mobile version always lost focus and return me to the top of the page.

  2. @arelyo Glad you like the new site. When and if you have a moment, could you please tell me which pages specifically you had the problem with?

    1. The page I definitely remember is registration one. Can't reproduce it now on the other pages. It seems, problem appeared in cases when i had textfield and some other kind of controls. Despite I used any other controls focus was always returned to the last used text field.

    2. Thanks, Arelyo. I think that at least in some cases, this occurs because the Dev Gym pages sometimes have just a single input text field (the rest of the page being cards and buttons you click on). And then unfortunately, in this case the browser automatically puts the cursor into the field and makes it the current focus.

  3. Hi Steven. I really like the new site. "Oracle Dev Gym"!!! what an interesting idea. One question: it seems I can't choose technology features like on the old site, e.g: I sometimes want to answer a question related to a particular topic, such as: conditions on SQL quiz. On the new site, I just got directly right into the question :(

    1. Duong, you certainly can do this, if I understand your question correctly. I will do a video on this soon, but in the meantime:

      1. Click on Exercise on the home page.
      2. Select a technology, such as PL/SQL.
      3. Click on Take a Quiz.
      4. You can then drill down to more specific topics.

      Please let me know if this is not what you were looking for.

    2. oh that's exactly what I was looking for. Thanks, Steven :)

  4. This idea was submitted from the site: "For Yes/No Answers it would be good to differentiate between activly choosing the "No" option and not answering the question. Currently everything that is no choosen counts as No. That is ok. But the user wants to see where he/she already did think about the answer and set it to NO. This is currently not possible. This would help especially if sometime one forgets to click on an answer."

    I wonder if anyone has an opinion about this. I am concerned about people requiring to click any more often than they need to.

  5. Comment submitted by a user:

    I'm very happy about this because I'm part of the group that doesn't want to compete and certainly wants to get trained. I found it very easy to use.

    1. I am glad to hear this, but just to make sure all current PL/SQL Challenge players know: you can take all the weekly quizzes you want WITHOUT competing.

  6. Very good idea Steven. Im looking forward to the gym.

  7. While answering the quiz in the new site, author of the quiz is not being displayed, which is not pleasing to me.


  8. Thanks for the reminder, Fahd. We will be displaying that soon!

  9. Comment from user:

    New site looks good, but the whole dev gym angle is very juvenile. Things like "Looking For Bigger Oracle Muscles?" seem aimed more at 12 year olds than professional developers.

    Any thoughts on this? Do you think we should "play it straight" - call it the Dev Gym, but not really have any gym references on the site? Or should we "play it up" and make it more "gym-like"?

    1. Leave it the way it is, being professional doesn't mean being boring! Excellent idea either way, I wish this had been live when I got into PLSQL a couple of years back.


    2. Thanks, Liam. I agree. We can have some fun and learn!

  10. Superb Interface ! I really like it and easy to play,but I couldn't get quiz library like find previous quizzes.

  11. Naveen, thanks for the kind comments, glad you like it. Do you want to see the previous quizzes you've answered? Go to My Locker (click on your gym name in upper right), then choose Answered or Ranked quizzes). We will make this more visible soon. We do not yet have a library feature in which you can simply explore quizzes you have NOT taken. I am not sure we will do that. What do you think?


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 ErrorI need to implement this rule on my employees table:
Your new salary cannot be more than 25x th…

How to Pick the Limit for BULK COLLECT

This question rolled into my In Box today:
In the case of using the LIMIT clause of BULK COLLECT, how do we decide what value to use for the limit? First I give the quick answer, then I provide support for that answer

Quick Answer
Start with 100. That's the default (and only) setting for cursor FOR loop optimizations. It offers a sweet spot of improved performance over row-by-row and not-too-much PGA memory consumption.Test to see if that's fast enough (likely will be for many cases).If not, try higher values until you reach the performance level you need - and you are not consuming too much PGA memory. Don't hard-code the limit value: make it a parameter to your subprogram or a constant in a package specification.Don't put anything in the collection you don't need. [from Giulio Dottorini]Remember: each session that runs this code will use that amount of memory.Background

When you use BULK COLLECT, you retrieve more than row with each fetch, reducing context switchi…

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…