我有一个Oracle 12c数据库,正在£
上用??
取代INSERT
。插件来自11.2即时客户端SQL * Plus会话。这两个盒子都在运行Linux。
在数据库主机本身的SQL * Plus上也会发生同样的情况。
数据库主机具有以下设置:
$LANG
:en_GB.UTF8 NLS_CHARACTERSET
:AL32UTF8 客户有:
$LANG
:en_GB.UTF-8 $NLS_LANG
未设置为DB或Client主机。
select dump('£', 1017) from dual;
DUMP('??',1017)
-----------------------------------------------------
Typ=96 Len=6 CharacterSet=AL32UTF8: ef,bf,bd,ef,bf,bd
编辑:更正。仅替换了£
,但正在替换为??
答案 0 :(得分:1)
您正在看.show()
。看起来the Unicode replacement character的Linux环境设置不合适:
LANG
使用与$ export NLS_LANG="ENGLISH_UNITED KINGDOM.AL32UTF8"
$ sqlplus ...
SQL> select dump('£', 1017) from dual;
DUMP('£',1017)
-----------------------------------------
Typ=96 Len=2 CharacterSet=AL32UTF8: c2,a3
匹配的设置,它会按预期工作:
{{1}}