问题描述
你好,
您能否解释一下为什么以下脚本中的NLS_UPPER将小写的 “i” 映射为 “?”,而所有其他字母都正确映射到相应的大写字母。
您能否解释一下为什么以下脚本中的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将是正确的字符集。”
所以检查你的字符集,看看它们是否提供了你需要的信息。
“首先要检查的是数据库和客户端字符集。两者都必须支持土耳其字母“ 带点的大写字母I ”,这是ASCII“ i ”的土耳其大写字母,也就是“ 带点的小写字母i ”。AL32UTF8,WE8ISO8859P9和TR8MSWIN1254将是正确的字符集。”
所以检查你的字符集,看看它们是否提供了你需要的信息。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




