Oracle客户端编码

d7v8vwbk  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(118)

我正在尝试在其他PC上创建开发环境。安装Oracle Client 19,PL/SQL Developer。
下面是来自服务器的nls_parameters:

因此,我在注册表中的客户端上设置了NLS_LANG

但是,我仍然在PL/SQL Developer中得到了废话:

在sqlplus中:

SQL> select * from adm_org;

    ORG_ID
----------
ORG_NAME
--------------------------------------------------------------------------------
ORG_FULL_NAME
--------------------------------------------------------------------------------
         1
─σ≡µαΓφΦΘ ßε≡π
╙∩≡αΓδ│φφ  Σσ≡µαΓφΦ∞ ßε≡πε∞

         2
╠╘╬ ≥α ╠╥─
╙∩≡αΓδ│φφ  ╠╘╬ ≥α Ωεε≡ΣΦφα÷│  ╠╥─

然后我尝试了SQL Developer,它是成功的。但是SQL Developer使用单独的客户端连接到Oracle。它似乎使用了Cp 1252。Supported character sets只有WE 8 MSWIN 1252,它没有解决这个问题。
我错过了什么?客户端和服务器端的字符集应该相同吗?我以前从来没有遇到过这样的问题,所有的问题都是通过设置NLS_LANG来解决的。

bweufnob

bweufnob1#

SQL Developer是一个基于Java/JDBC的客户端,它不使用NLS_LANG设置。
PL/SQL Developer我不知道,看看设置。
sqlplus继承命令行中的字符集。试试这个

chcp 1251
SET NLS_LANG=.CL8MSWIN1251
sqlplus ...

不需要在数据库和客户端上具有相同的字符集(尽管使它们相同是一个好主意)。重要的是NLS_LANG值声明了客户端使用的真实的字符集。客户端字符集应该支持数据库支持的所有字符。
另请参阅OdbcConnection返回中文字符为“?“

相关问题