暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 当NLS_SORT设置为 'xturkish' 时,为什么NLS_UPPER将小写 'i' 映射为 '?

askTom 2017-07-21
170

问题描述

你好,

您能否解释一下为什么以下脚本中的NLS_UPPER将小写的 “i” 映射为 “?”,而所有其他字母都正确映射到相应的大写字母。

SQL> ALTER SESSION SET NLS_SORT="xturkish";

Session altered.

SQL> 
SQL> begin
  2   DBMS_OUTPUT.PUT_LINE('NLS_UPPER(abcdefghijklmnopqrstuvwxyz) = '
  3                || NLS_UPPER('abcdefghijklmnopqrstuvwxyz'));
  4  end;
  5  /
NLS_UPPER(abcdefghijklmnopqrstuvwxyz) = ABCDEFGH?JKLMNOPQRSTUVWXYZ

PL/SQL procedure successfully completed.
复制

专家解答

土耳其语是不寻常的,因为它必须字母 “i” s。我与NLS专家Sergiusz Wolicki进行了交谈。他有以下内容:

“首先要检查的是数据库和客户端字符集。两者都必须支持土耳其字母“ 带点的大写字母I ”,这是ASCII“ i ”的土耳其大写字母,也就是“ 带点的小写字母i ”。AL32UTF8,WE8ISO8859P9和TR8MSWIN1254将是正确的字符集。”

所以检查你的字符集,看看它们是否提供了你需要的信息。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论