oracle-databaseencodingsqlplusnls-lang

ORACLE - NLS_LANG, CHARSET, SPECIAL CHARS


I have the following problem on WINDOWS (Italian):

ORACLE DB NLS_PARAMETERS

my NLS_LANG parameter is: ITALIAN_ITALY.UTF8

i want to execute the following query:

INSERT INTO SCHEMA.MY_TABLE("NAME") VALUES('ò');

Doing it by using command line (pure sqlplus) stores invalid data inside DB.

Doing it by using SQLDEVELOPER stores correct data.

I cannot find any way to set this stuff correctly, what should I do? Using SQLPLUS from command line is required.

Any help is appreciated.


Solution

  • When you use sqlplus then it inherits the character set from command line window. You can interrogate and modify character set (aka encoding) with chcp, I assume it is CP850 - which is not UTF8.

    Run chcp 65001 before you start sqlplus, then it should work. See also Converting German special characters to English equivalent one in Oracle SQL / PL-SQL or to read more details OdbcConnection returning Chinese Characters as "?"