Analysis and solution of the problem of Oracle character set garbled

Source: Internet
Author: User

analysis and solution of the problem of Oracle character set garbled
I. Description of the problem

  SQL Plus Worksheet is an SQL Statement editor for a window graphical interface, which is relatively sql/plus for users who prefer a window interface to a character interface. But after Oracle 8i, if Oracle 8i is installed with the English character set, the Simplified Chinese character set (ZHS16GBK) is usually selected for us in China, and after the installation is successful, the SQL Plus worksheet program is run, There will be all the Chinese display and the query results are garbled.

Second, the problem analysis

Initially, this problem was first suspected of having problems with the character set setting at installation time, which meant that the correct Simplified Chinese character set was not established. First check the database character set, and in Sql/plus, run the following SQL statement to check the character set of the connected database:

Sql> Select Userenv (' language ') from dual;

USERENV (' LANGUAGE ')

Simplified Chinese_china. Zhs16gbk

The query results found that the character set selected for the database installation is Simplified Chinese ZHS16GBK, which indicates that the character set setup is completely correct. The second step begins to suspect User Client character set problem, check client registry, open Registry Editor (RegEdit), in Hkey_local_machine/software/oracle/nls_lang, Oracle client character set is found to be american_america. ZHS16GBK, the settings are also completely correct, you can exclude the problem that the client character set setting is wrong. At the same time there is also a phenomenon in the same client machine Sql/plus query character set display completely normal, which also shows that it is not a character set problem, but the System program Sql/plus worksheet problem.

This has never happened in previous versions of Oracle 8i, which should be related to the Oracle version, and we know that a significant difference between Oracle 8i and its previous version is that most Oracle system programs are now powered by Java, In fact, this is the root cause of the problem of character set garbled. Non-Java-driven programs, such as Sql*plus, have a system parameter Nls_lang, which is set in the UNIX system in the environment variable and set in the registry in the Windows operating system, which determines the character set of the client application. for Java-based applications, such as the Sql*plus Worksheet,nls_lang parameters that are now encountered have no effect on such programs.

Third, the solution

After you have found the cause of the problem, let's discuss how to resolve the problem. For all the tools in Oracle Enterprise Manager, there is a configuration file named Dbappscfg.properties that modifies the file to resolve the problem. This file is located in the $oracle_home\sysman\config directory, with any text editor to open the file, in this file, find such an item,

# Sqlplus_nls_lang=american_america. We8iso8859p1

Remove the annotation character # and change it to

Sqlplus_nls_lang=american_america. Zhs16gbk

For Windows operating systems, you also need to modify an item to find # SQLPLUS_SYSTEMROOT=C:\\WINNT40 in the file, remove the annotation character, and modify it to the operating system home directory of your machine. such as the operating system's home directory in the D-Disk under the Winnt, it will be modified to

Sqlplus_systemroot=d:\\winnt.

Modifications to the subsequent entry are only made to the Windows operating system and are not required for UNIX operating systems. If you do not modify the entry in the Windows operating system, in Oracle Enterprise Manager, the following error is prompted when connecting to the system:

ORA-12560 Tns:protocol Adapter Error

Or

ORA-12545 Connect failed because target host or object does not exist

After the modification is complete, save the file and exit the edit. Reconnect SQL PLUS worksheet, the character set garbled problem is resolved and the correct Simplified Chinese character set is displayed.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.