◐ Shell
clean mode source ↗

The functionality of utPLSQL is dependent on the session parameter NLS_SORT

Describe the bug

If some alphabetic sorting rules of a language other than English are used, depending on the name of the schema being tested, the framework may break and throw, for example, the following error message:
[Error] Execution (5: 1): ORA-20202: Invalid path format: test.*
ORA-06512: at "UT3.UT_RUNNER", line 158
ORA-06512: at "UT3.UT_SUITE_MANAGER", line 36
...

The cause of the error is explained in this old stackoverflow article:
https://stackoverflow.com/questions/1271778/oracles-puzzling-behaviour-with-nls-sort-and-a-simple-regexp-like

Provide version info
db_version: 19.0.0.0.0
compatibility: 19.0.0
ut_version: v3.1.13.3592

v$version:

  • Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
  • Version 19.17.0.0.0

nls_session_parameters:

  • NLS_LANGUAGE: ESTONIAN
  • NLS_TERRITORY: ESTONIA
  • NLS_CURRENCY: ?
  • NLS_ISO_CURRENCY: ESTONIA
  • NLS_NUMERIC_CHARACTERS: ,
  • NLS_CALENDAR: GREGORIAN
  • NLS_DATE_FORMAT: DD.MM.RRRR
  • NLS_DATE_LANGUAGE: ESTONIAN
  • NLS_SORT: ESTONIAN
  • NLS_TIME_FORMAT: HH24:MI:SSXFF
  • NLS_TIMESTAMP_FORMAT: DD.MM.RRRR HH24:MI:SSXFF
  • NLS_TIME_TZ_FORMAT: HH24:MI:SSXFF TZR
  • NLS_TIMESTAMP_TZ_FORMAT: DD.MM.RRRR HH24:MI:SSXFF TZR
  • NLS_DUAL_CURRENCY: ?
  • NLS_COMP: BINARY
  • NLS_LENGTH_SEMANTICS: CHAR
  • NLS_NCHAR_CONV_EXCP: FALSE

port_string: x86_64/Linux 2.4.xx

Information about client software
Toad for Oracle Xpert (64-bit) 16.3.231.2085

To Reproduce
Steps to reproduce the behavior:

  1. Create a schema with name 'TEST'.
  2. Create a simple unit test in that schema.
  3. Run script:
alter session set nls_sort='ESTONIAN';

begin
  ut.run();
end;
/
  1. See error
    Error at line 3
    ORA-20202: Invalid path format: test
    ORA-06512: at "UT3.UT_RUNNER", line 158
    ORA-06512: at "UT3.UT_SUITE_MANAGER", line 36
    ...

Expected behavior
I would expect this framework to work on any Oracle database, regardless of Oracle settings.