下面是一个基本示例:
CREATE TABLE samuel(id varchar(1), field varchar(1));
INSERT INTO samuel VALUES ('1', ' ');
INSERT INTO samuel VALUES ('2', '&');
在使用Oracle 11.2.0.4.0执行SELECT id, field, DUMP(field) FROM samuel order by field;
时,我得到:
| 识别号|领域|转储|
| - ------|- ------|- ------|
| 第二章|和|典型值=1长度=1:38|
| 1个||典型值=1长度=1:32|
但是当执行select id from samuel where field=(select min(field) from samuel);
时,我得到1!
以下是NLS设置:
| 参数|价值|
| - ------|- ------|
| NLS_语言|法语|
| NLS_区域|法国|
| NLS_货币|欧元|
| NLS_ISO_货币|法国|
| NLS数字字符|,|
| NLS_日历|格雷戈里安|
| NLS日期格式|年/月/日HH 24:MI:SS|
| NLS_日期_语言|法语|
| NLS分类|法语|
| NLS时间格式|HH24:MI:SSXFF|
| NLS时间戳格式|年/月/日HH 24:MI:SSXFF|
| NLS时间TZ格式|HH24:MI:SSXFF TZR|
| NLS时间戳TZ格式|年/月/日HH 24:MI:SSXFF TZR|
| NLS_双_货币|欧元|
| NLS_补偿|二进制|
| NLS长度语义|字节|
| NLS_NCHAR_转换器_排除|错误|
为什么会这样?
1条答案
按热度按时间k4emjkb11#
你的资料显示你在法国。
给定设置:
然后显示该语言的默认NLS设置:
包括:
| 参数|价值|
| - ------|- ------|
| NLS_语言|法语|
| NLS分类|法语|
| NLS_补偿|二进制|
然后:
输出:
| 识别号|领域|
| - ------|- ------|
| 第二章|和|
| 1个| |
如果强制排序顺序为二进制:
则输出为:
| 识别号|领域|
| - ------|- ------|
| 1个| |
| 第二章|和|
您需要确保根据所需的规则进行排序。如有必要,您可以用途:
然后:
输出:
| 识别号|领域|
| - ------|- ------|
| 1个| |
| 第二章|和|
fiddle