-229   THE LOCALE locale SPECIFIED IN A SET LC_CTYPE OR OTHER STATEMENT THAT IS LOCALE SENSITIVE WAS NOT FOUND

Explanation

The statement attempted to reference a locale that is not known or not available to DB2®. The value of the variable locale indicates what locale DB2 is using when it processed the statement. DB2 used the locale that was either specified on the SET CURRENT LOCALE LC_CTYPE statement or the locale that was in effect at the time the locale access was attempted.

System action

The statement cannot be executed.

Programmer response

Depending on whether the locale was explicitly specified in a SET CURRENT LOCALE LC_CTYPE statement or the current locale was used implicitly, complete one of the following actions:
  • If the statement was a SET CURRENT LOCALE LC_CTYPE statement, re-specify a locale that is correct (known and available to DB2).
  • If the statement was something other than SET CURRENT LOCALE LC_CTYPE, then the statement contained a locale sensitive interface (the UPPER function is an example of a locale sensitive interface).
Issue the following statement to determine the value of the locale in use by your program:
SELECT CURRENT LOCALE LC_CTYPE FROM
SYSIBM.SYSDUMMY1.

Another possible reason for this message is that DB2 used an incorrect locale default value specified at installation time. Because locales are dynamic, they can be added, created, or deleted at anytime. DB2 does not validate the value of the locale until it is used. Therefore, it is possible to specify a locale that is not valid at installation time.

For information about locales and their naming conventions, see z/OS XL C/C++ Programming Guide.

SQLSTATE

42708