甲骨文取代了?关于INSERT

时间:2017-06-19 13:12:21

标签: oracle character-encoding

我有一个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

编辑:更正。仅替换了£,但正在替换为??

1 个答案:

答案 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}}

the Oracle NLS_LANG variable