Although not strictly attached to the 23c release of the database, one of the projects that is ongoing inside Oracle is improving the database error messages. People often make light of error messages, but they typically the first port of call when diagnosing an issue. I’ve lost track of the number of times my first response to an AskTom question is:
“Yes thanks for that detail, but what was the error message you got?“
Thus better error messages is an essential thing to improving the ability to troubleshoot issues on your database. Some of the changes you’ll see are merely cosmetic to improve the aesthetic, eg
Before: ORA-01006: bind variable does not exist
After: ORA-01006: Bind variable does not exist
But many others are focussed on either better describing the error itself, or trying to guide the user into where the solution may lie. For example:
Before: ORA-00020: maximum number of processes exceeded
After: ORA-00020: exceeded maximum number of processes (nnn) specified in initialization parameter
Before: ORA-00604: error occurred at recursive SQL level
After: ORA-00604: Error occurred at recursive SQL level . Check subsequent errors.
Before: ORA-01008: not all variables bound
After: ORA-01008: value for bind variable placeholder (NAME) was not provided
Note that this does mean that is is important that you scan your existing code to ensure that it is reacting to the error code and not exclusively the error text. If you were expecting to see “invalid username/password” when someone failed to logon (and hence were checking for that text as opposed to ORA-01017), then such scripts will need adjusting when you move to 23c and beyond.
But overall, we’re hope you’re happy with the new more descriptive messages, and now that you know the project is underway and on going, if you see any messages that you think could be improved, please get in touch and we’ll pass that feedback along to the team. Better messages make all of our lives easier.
Here’s my video with a few more examples