1

I have an issue regarding configuring Thai language in oracle (PL/SQL Developer). I have configured Thai language 'AMERICAN_AMERICA.TH8TISASCII' in regedit. Also I configured Environment variables in my computer. But still when I connect PL/SQL developer and retrieve data, columns that should show Thai descriptions are showing garbage data. Please help me.

Example of garbage data is '¿¿¿¿¿¿¿¿'

Oracle Configurations is as below : regedit->computer->HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraDB11g_home1

Windown Configuration is as below:

Mycomputer->Advanced system setting->Advanced System Settings->Environment Variables -> (here i added variable)

the same configuration is done by my peers and they got the configuration but i am not able to do this

4

2 回答 2

0

我在 regedit 中配置了泰语“AMERICAN_AMERICA.TH8TISASCII”。

这意味着您已将NLS_LANGUAGE配置为AMERICAN将 NLS_TERRITORY配置为AMERICA. 这是错误的。

您应该选择以下内容:

NLS_LANGAUGE=THAI 
NLS_TERRITORY=THAILAND

您需要在以下位置执行此操作:

  1. 数据库级别 - init.ora 文件
  2. 环境级别 - NLS LANG 设置

我认为你的字符集很好。

UPDATE OP 遇到了 PL/SQL Developer 工具的问题。

您可以在PL/SQL Developer 安装目录的AfterConnect.sql文件中输入“alter session”命令。例如:

更改会话集 nls_date_format='dd-mm-yyyy'; 更改会话集 nls_territory='THAILAND'; 更改会话集 nls_language='THAI';

资源

于 2015-02-23T05:59:20.453 回答
0

我假设您在 PL/SQL Developer 中选择的字体不支持泰语字符。试试这个命令来检查:

SELECT UNISTR('Kho Khuat: \0E03') FROM DUAL;

你得到这样的正确输出吗?

Kho Khuat: ฃ

如果没有,您应该选择支持泰语字符的字体。您可以使用此页面FileFormat.info来检查哪种字体支持您的字符。

的值NLS_LANG应与您的本地环境设置匹配,而不是数据库中的设置。这样,所有字符都可以在 SQL 通信中正确翻译。

使用以下命令检查您的本地环境:

c:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /v ACP

就我而言,它是

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
    ACP    REG_SZ    1252

所以,我的 NLS_LANG 应该设置为.WE8MSWIN1252或类似的东西。

但是,这仅在您的应用程序(在您的情况下为 SQL Developer)使用 Windows 的默认编码设置时才有效。在某些应用程序中,您可以更改它 - 通常您可以在本地代码页和 Unicode (UTF-8) 之间切换。在这种情况下,您必须进行相应的修改NLS_LANG

于 2015-02-23T10:38:30.143 回答