Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

CLI shows question marks instead of Russian symbols #169

Copy link
Copy link
Closed
@alesana-san

Description

@alesana-san
Issue body actions

Hi!

What started in a Slack chat grew into this issue :)

I have a test with Russian words in its name. So I expect it to be "Russian" when I call it via cli.

Here's my preset:

  • NLS_DATABASE_PARAMETERS:
    • NLS_TERRITORY = AMERICA
    • NLS_LANGUAGE = AMERICAN
    • NLS_CHARACTERSET = CL8ISO8859P5
  • NLS_SESSION_PARAMETERS (via DataGrip):
    • NLS_LANGUAGE = RUSSIAN
    • NLS_TERRITORY = RUSSIA
  • Database Version = 12.2.0.1.0

Calling ut.run in DataGrip results in a good output with all my Russian symbols.

Okay, let's proceed with cli:

C:\Users\Shiryaev1-RY>chcp
Текущая кодовая страница: 866

C:\Users\Shiryaev1-RY>utplsql.bat info "some_user"/"q1w2e3r4t5y6u7i8o9p0"@local_pdb
utPLSQL-cli 3.1.8-SNAPSHOT.local
utPLSQL-java-api 3.1.8.546
utPLSQL 3.1.6.2735

Calling as it is:

C:\Users\Shiryaev1-RY>utplsql.bat run "some_user"/"q1w2e3r4t5y6u7i8o9p0"@local_pdb -p=SP.ut_sp_hand_get_reqs.basic_usage -d
2019-11-26 17:54:08 [main] INFO  org.utplsql.cli.RunAction - ############# utPLSQL cli ##############
#                                      #
#   utPLSQL-cli 3.1.8-SNAPSHOT.local   #
#   utPLSQL-java-api 3.1.8.546         #
#   Java-Version: 1.8.0_221            #
#   ORACLE_HOME: null                  #
#   NLS_LANG: null                     #
#                                      #
#   Thanks for testing!                #
#                                      #
########################################
2019-11-26 17:54:08 [main] INFO  org.utplsql.cli.RunAction -
2019-11-26 17:54:09 [main] INFO  o.u.c.d.TestedDataSourceProvider - Use connection string jdbc:oracle:thin:****/****@local_pdb
2019-11-26 17:54:09 [main] INFO  org.utplsql.cli.RunAction - Successfully connected to database. UtPLSQL core: v3.1.6.2735
2019-11-26 17:54:09 [main] INFO  org.utplsql.cli.RunAction - Oracle-Version: 12.2.0.1.0
2019-11-26 17:54:10 [main] DEBUG org.utplsql.api.reporter.Reporter - Database-reporter initialized, Type: UT_DOCUMENTATION_REPORTER, ID: 98420D7BA25A031BE053020012ACA88D
2019-11-26 17:54:10 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - Running tests now.
2019-11-26 17:54:10 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - --------------------------------------
2019-11-26 17:54:10 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - TestRunner initialized
2019-11-26 17:54:10 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running on utPLSQL v3.1.6.2735
2019-11-26 17:54:10 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Initializing reporters
2019-11-26 17:54:11 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests
simple_payment
  sp_req_handler_pkg
2019-11-26 17:54:11 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests finished.
    get_reqs_to_process
      ????? ????????? sp_req_handler_pkg.get_reqs_to_process
        ???? ???????? ????????????? [,004 sec]

Finished in ,028223 seconds
1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)

2019-11-26 17:54:11 [main] INFO  org.utplsql.cli.RunAction - --------------------------------------
2019-11-26 17:54:11 [main] INFO  org.utplsql.cli.RunAction - All tests done.

Nope, didn't work.

Let's try with LC_ALL:

C:\Users\Shiryaev1-RY>set LC_ALL=ru_RU.utf-8

C:\Users\Shiryaev1-RY>utplsql.bat run "some_user"/"q1w2e3r4t5y6u7i8o9p0"@local_pdb -p=SP.ut_sp_hand_get_reqs.basic_usage -d
2019-11-26 17:55:30 [main] INFO  org.utplsql.cli.RunAction - ############# utPLSQL cli ##############
#                                      #
#   utPLSQL-cli 3.1.8-SNAPSHOT.local   #
#   utPLSQL-java-api 3.1.8.546         #
#   Java-Version: 1.8.0_221            #
#   ORACLE_HOME: null                  #
#   NLS_LANG: null                     #
#                                      #
#   Thanks for testing!                #
#                                      #
########################################
2019-11-26 17:55:30 [main] INFO  org.utplsql.cli.RunAction -
2019-11-26 17:55:30 [main] INFO  o.u.c.d.TestedDataSourceProvider - Use connection string jdbc:oracle:thin:****/****@local_pdb
2019-11-26 17:55:30 [main] INFO  org.utplsql.cli.RunAction - Successfully connected to database. UtPLSQL core: v3.1.6.2735
2019-11-26 17:55:30 [main] INFO  org.utplsql.cli.RunAction - Oracle-Version: 12.2.0.1.0
2019-11-26 17:55:31 [main] DEBUG org.utplsql.api.reporter.Reporter - Database-reporter initialized, Type: UT_DOCUMENTATION_REPORTER, ID: 9842124F42B6034AE053020012ACF6A3
2019-11-26 17:55:31 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - Running tests now.
2019-11-26 17:55:31 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - --------------------------------------
2019-11-26 17:55:31 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - TestRunner initialized
2019-11-26 17:55:31 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running on utPLSQL v3.1.6.2735
2019-11-26 17:55:31 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Initializing reporters
2019-11-26 17:55:31 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests
2019-11-26 17:55:31 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests finished.
simple_payment
  sp_req_handler_pkg
    get_reqs_to_process
      ????? ????????? sp_req_handler_pkg.get_reqs_to_process
        ???? ???????? ????????????? [,004 sec]

Finished in ,009586 seconds
1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)

2019-11-26 17:55:31 [main] INFO  org.utplsql.cli.RunAction - --------------------------------------
2019-11-26 17:55:31 [main] INFO  org.utplsql.cli.RunAction - All tests done.

Noooooooope. Okay, let's try with NLS_LANG:

C:\Users\Shiryaev1-RY>set LC_ALL=

C:\Users\Shiryaev1-RY>set NLS_LANG=russian_russia.CL8ISO8859P5

C:\Users\Shiryaev1-RY>utplsql.bat run "some_user"/"q1w2e3r4t5y6u7i8o9p0"@local_pdb -p=SP.ut_sp_hand_get_reqs.basic_usage -d
2019-11-26 17:57:39 [main] INFO  org.utplsql.cli.RunAction - ################ utPLSQL cli ################
#                                           #
#   utPLSQL-cli 3.1.8-SNAPSHOT.local        #
#   utPLSQL-java-api 3.1.8.546              #
#   Java-Version: 1.8.0_221                 #
#   ORACLE_HOME: null                       #
#   NLS_LANG: russian_russia.CL8ISO8859P5   #
#                                           #
#   Thanks for testing!                     #
#                                           #
#############################################
2019-11-26 17:57:39 [main] INFO  org.utplsql.cli.RunAction -
2019-11-26 17:57:39 [main] DEBUG o.u.c.d.TestedDataSourceProvider - NLS settings: BEGIN
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_LANGUAGE='russian']';
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_TERRITORY='russia']';
END;
2019-11-26 17:57:40 [main] INFO  o.u.c.d.TestedDataSourceProvider - Use connection string jdbc:oracle:thin:****/****@local_pdb
2019-11-26 17:57:40 [main] INFO  org.utplsql.cli.RunAction - Successfully connected to database. UtPLSQL core: v3.1.6.2735
2019-11-26 17:57:40 [main] INFO  org.utplsql.cli.RunAction - Oracle-Version: 12.2.0.1.0
2019-11-26 17:57:40 [main] DEBUG org.utplsql.api.reporter.Reporter - Database-reporter initialized, Type: UT_DOCUMENTATION_REPORTER, ID: 98421A084170039EE053020012AC52B2
2019-11-26 17:57:40 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - Running tests now.
2019-11-26 17:57:40 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - --------------------------------------
2019-11-26 17:57:40 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - TestRunner initialized
2019-11-26 17:57:40 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running on utPLSQL v3.1.6.2735
2019-11-26 17:57:40 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Initializing reporters
2019-11-26 17:57:40 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests
2019-11-26 17:57:40 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests finished.
simple_payment
  sp_req_handler_pkg
    get_reqs_to_process
      ????? ????????? sp_req_handler_pkg.get_reqs_to_process
        ???? ???????? ????????????? [,013 sec]

Finished in ,015801 seconds
1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)

2019-11-26 17:57:40 [main] INFO  org.utplsql.cli.RunAction - --------------------------------------
2019-11-26 17:57:40 [main] INFO  org.utplsql.cli.RunAction - All tests done.

God, plz! After looking at Oracle NLS stories I decided to do the following:

C:\Users\Shiryaev1-RY>set NLS_LANG=russian_russia.RU8PC866

C:\Users\Shiryaev1-RY>utplsql.bat run "some_user"/"q1w2e3r4t5y6u7i8o9p0"@local_pdb -p=SP.ut_sp_hand_get_reqs.basic_usage -d
2019-11-26 17:59:53 [main] INFO  org.utplsql.cli.RunAction - ############## utPLSQL cli ##############
#                                       #
#   utPLSQL-cli 3.1.8-SNAPSHOT.local    #
#   utPLSQL-java-api 3.1.8.546          #
#   Java-Version: 1.8.0_221             #
#   ORACLE_HOME: null                   #
#   NLS_LANG: russian_russia.RU8PC866   #
#                                       #
#   Thanks for testing!                 #
#                                       #
#########################################
2019-11-26 17:59:53 [main] INFO  org.utplsql.cli.RunAction -
2019-11-26 17:59:53 [main] DEBUG o.u.c.d.TestedDataSourceProvider - NLS settings: BEGIN
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_LANGUAGE='russian']';
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_TERRITORY='russia']';
END;
2019-11-26 17:59:54 [main] INFO  o.u.c.d.TestedDataSourceProvider - Use connection string jdbc:oracle:thin:****/****@local_pdb
2019-11-26 17:59:54 [main] INFO  org.utplsql.cli.RunAction - Successfully connected to database. UtPLSQL core: v3.1.6.2735
2019-11-26 17:59:54 [main] INFO  org.utplsql.cli.RunAction - Oracle-Version: 12.2.0.1.0
2019-11-26 17:59:54 [main] DEBUG org.utplsql.api.reporter.Reporter - Database-reporter initialized, Type: UT_DOCUMENTATION_REPORTER, ID: 98422208E89A03F6E053020012AC69AF
2019-11-26 17:59:54 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - Running tests now.
2019-11-26 17:59:54 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - --------------------------------------
2019-11-26 17:59:54 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - TestRunner initialized
2019-11-26 17:59:54 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running on utPLSQL v3.1.6.2735
2019-11-26 17:59:54 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Initializing reporters
2019-11-26 17:59:55 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests
2019-11-26 17:59:55 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests finished.
simple_payment
  sp_req_handler_pkg
    get_reqs_to_process
      ????? ????????? sp_req_handler_pkg.get_reqs_to_process
        ???? ???????? ????????????? [,004 sec]

Finished in ,007218 seconds
1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)

2019-11-26 17:59:55 [main] INFO  org.utplsql.cli.RunAction - --------------------------------------
2019-11-26 17:59:55 [main] INFO  org.utplsql.cli.RunAction - All tests done.

Well, let's take another shot:

C:\Users\Shiryaev1-RY>set NLS_LANG=russian_cis.CL8MSWIN1251

C:\Users\Shiryaev1-RY>utplsql.bat run "some_user"/"q1w2e3r4t5y6u7i8o9p0"@local_pdb -p=SP.ut_sp_hand_get_reqs.basic_usage -d
2019-11-26 18:03:19 [main] INFO  org.utplsql.cli.RunAction - ############## utPLSQL cli ###############
#                                        #
#   utPLSQL-cli 3.1.8-SNAPSHOT.local     #
#   utPLSQL-java-api 3.1.8.546           #
#   Java-Version: 1.8.0_221              #
#   ORACLE_HOME: null                    #
#   NLS_LANG: russian_cis.CL8MSWIN1251   #
#                                        #
#   Thanks for testing!                  #
#                                        #
##########################################
2019-11-26 18:03:19 [main] INFO  org.utplsql.cli.RunAction -
2019-11-26 18:03:19 [main] DEBUG o.u.c.d.TestedDataSourceProvider - NLS settings: BEGIN
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_LANGUAGE='russian']';
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_TERRITORY='cis']';
END;
2019-11-26 18:03:19 [main] INFO  o.u.c.d.TestedDataSourceProvider - Use connection string jdbc:oracle:thin:****/****@local_pdb
2019-11-26 18:03:20 [main] INFO  org.utplsql.cli.RunAction - Successfully connected to database. UtPLSQL core: v3.1.6.2735
2019-11-26 18:03:20 [main] INFO  org.utplsql.cli.RunAction - Oracle-Version: 12.2.0.1.0
2019-11-26 18:03:20 [main] DEBUG org.utplsql.api.reporter.Reporter - Database-reporter initialized, Type: UT_DOCUMENTATION_REPORTER, ID: 98422E48D8890483E053020012ACCC0D
2019-11-26 18:03:20 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - Running tests now.
2019-11-26 18:03:20 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - --------------------------------------
2019-11-26 18:03:20 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - TestRunner initialized
2019-11-26 18:03:20 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running on utPLSQL v3.1.6.2735
2019-11-26 18:03:20 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Initializing reporters
2019-11-26 18:03:20 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests
2019-11-26 18:03:21 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests finished.
simple_payment
  sp_req_handler_pkg
    get_reqs_to_process
      ????? ????????? sp_req_handler_pkg.get_reqs_to_process
        ???? ???????? ????????????? [,013 sec]

Finished in ,038208 seconds
1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)

2019-11-26 18:03:21 [main] INFO  org.utplsql.cli.RunAction - --------------------------------------
2019-11-26 18:03:21 [main] INFO  org.utplsql.cli.RunAction - All tests done.

Oh, I forgot to switch chcp to 1251. And again...

C:\Users\Shiryaev1-RY>chcp 1251
Текущая кодовая страница: 1251

C:\Users\Shiryaev1-RY>utplsql.bat run "some_user"/"q1w2e3r4t5y6u7i8o9p0"@local_pdb -p=SP.ut_sp_hand_get_reqs.basic_usage -d
2019-11-26 18:03:37 [main] INFO  org.utplsql.cli.RunAction - ############## utPLSQL cli ###############
#                                        #
#   utPLSQL-cli 3.1.8-SNAPSHOT.local     #
#   utPLSQL-java-api 3.1.8.546           #
#   Java-Version: 1.8.0_221              #
#   ORACLE_HOME: null                    #
#   NLS_LANG: russian_cis.CL8MSWIN1251   #
#                                        #
#   Thanks for testing!                  #
#                                        #
##########################################
2019-11-26 18:03:37 [main] INFO  org.utplsql.cli.RunAction -
2019-11-26 18:03:37 [main] DEBUG o.u.c.d.TestedDataSourceProvider - NLS settings: BEGIN
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_LANGUAGE='russian']';
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_TERRITORY='cis']';
END;
2019-11-26 18:03:37 [main] INFO  o.u.c.d.TestedDataSourceProvider - Use connection string jdbc:oracle:thin:****/****@local_pdb
2019-11-26 18:03:37 [main] INFO  org.utplsql.cli.RunAction - Successfully connected to database. UtPLSQL core: v3.1.6.2735
2019-11-26 18:03:37 [main] INFO  org.utplsql.cli.RunAction - Oracle-Version: 12.2.0.1.0
2019-11-26 18:03:38 [main] DEBUG org.utplsql.api.reporter.Reporter - Database-reporter initialized, Type: UT_DOCUMENTATION_REPORTER, ID: 98422F56D51D0497E053020012AC7817
2019-11-26 18:03:38 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - Running tests now.
2019-11-26 18:03:38 [pool-1-thread-1] INFO  org.utplsql.cli.RunTestRunnerTask - --------------------------------------
2019-11-26 18:03:38 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - TestRunner initialized
2019-11-26 18:03:38 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running on utPLSQL v3.1.6.2735
2019-11-26 18:03:38 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Initializing reporters
2019-11-26 18:03:38 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests
2019-11-26 18:03:38 [pool-1-thread-1] INFO  org.utplsql.api.TestRunner - Running tests finished.
simple_payment
  sp_req_handler_pkg
    get_reqs_to_process
      ????? ????????? sp_req_handler_pkg.get_reqs_to_process
        ???? ???????? ????????????? [,004 sec]

Finished in ,008281 seconds
1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)

2019-11-26 18:03:38 [main] INFO  org.utplsql.cli.RunAction - --------------------------------------
2019-11-26 18:03:38 [main] INFO  org.utplsql.cli.RunAction - All tests done.

And what about sqlplus?

C:\Users\Shiryaev1-RY>sqlplus some_user/q1w2e3r4t5y6u7i8o9p0@local_pdb

SQL*Plus: Release 11.2.0.4.0 Production on Вт Ноя 26 18:11:20 2019

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Присоединен к:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> HOST ECHO %NLS_LANG%
russian_russia.RU8PC866

SQL> @.[%NLS_LANG%].
SP2-0310: не в состоянии открыть файл ".[russian_russia.RU8PC866]..sql"
SQL> set serveroutput on
SQL> exec ut.run('SP.ut_sp_hand_get_reqs.basic_usage');
simple_payment
sp_req_handler_pkg
get_reqs_to_process
Тесты процедуры sp_req_handler_pkg.get_reqs_to_process
Тест базового использования [.004 sec]
Finished in .027698 seconds
1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)

Процедура PL/SQL успешно завершена.

It works just fine! I call ut.run and output is okay! It's in Russian.

Hands down, I don't get how charset stuff works. Any help would be appreciated!

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.