08 January 2011

Proposed Assumptions for National Language Settings (NLS)

Some players in the past have expressed concerns about the fact that the daily quiz assumptions do not currently specify English as the language. I have worked with Michael Brunstedt (well, to be honest, he did all the work), one of the quiz reviewers, to come up with the following text for assumptions regarding national language settings. I'd like to get your feedback before putting them into effect.

Tanks in advance for your comments and advice.


Proposed Assumptions

The PL/SQL Challenge may reference various database generated messages or data values that are the result of database functional behavior. To establish a common basis for all players, the following default assumptions apply to all quizzes, but may be overridden within a quiz. First, these characters are supported in all Oracle character sets and are the only characters used for string values:
* Uppercase and lowercase English characters A through Z and a through z
* Arabic digits 0 through 9
* These punctuation marks: % ' ( ) * + - , . / \ : ; < > = ! _ & ~ { } | ^ ? $ # @ " [ ]
* These control characters: space, horizontal tab, vertical tab, form feed

The following calls to DBMS_SESSION.SET_NLS define national settings in effect for q quiz, unless otherwise specified in the quiz. If your local environment uses different settings, you may execute these statements to ensure compatibility with behavior and output of executable code provided by the PL/SQL Challenge.



  1. What is horizontal and vertical tab? I think I know horizontal (chr(8)), but vertical?

  2. The vertical tab, VT, chr(11) is a remnant from old times and used to make a printer skip lines until the next tab stop. This is comparable to the horizontal tab, HT, chr(9) that skips characters until the next tab stop in a line.

    Where HT is still implemented and supported by practically every editor, VT no longer serves a purpose, unless you need to support very old hardware.

    However, the ASCII code for VT is supported by every character set, potentially making it useful for some proprietary purpose.


  3. I would suggest an international ISO-8601 date format.
    MM/DD/YY? Or DD/MM/YY? Or YY/MM/DD? Or MY/DD/YM? This information might be very misleading