使用“alter nls_sort”似乎不适合我。我正在使用SQLPlus v11.2.0.3.0 x64,并试图应用在globalization.htm#CACJEJIB文档中找到的‘示例9-10 NLS_SORT影响语言排序顺序’的简单步骤。
CREATE TABLE temp (name VARCHAR2(15));
INSERT INTO temp (name) VALUES ('laguna');
INSERT INTO temp (name) VALUES ('llama');
INSERT INTO temp (name) VALUES ('loco');
SELECT * FROM nls_session_parameters WHERE parameter = 'NLS_SORT';
Result: BINARY
SELECT * FROM temp ORDER BY name;
Result:
NAME
---------------
laguna
llama
loco
ALTER SESSION SET NLS_SORT=SPANISH_M;
SELECT * FROM nls_session_parameters WHERE parameter = 'NLS_SORT';
Result: SPANISH_M
SELECT * FROM temp ORDER BY name;
Results are the same:
NAME
---------------
laguna
llama
loco根据did的说法,上面的排序顺序应该已经改变了,但没有改变。但是,如果我将NLS_SORT应用于查询本身,就会得到正确的resutls:
SELECT * FROM temp ORDER BY NLSSORT(name, 'NLS_SORT=SPANISH_M');
Result:
NAME
---------------
laguna
loco
llama我在这里错过了什么?提前结束。
发布于 2013-12-03 20:48:36
当我卸载Oracle v11.2.0.3.0和安装v12.1.0.1.0时,这个问题就得到了解决。说实话,我不能排除这可能只是我们的v11.2.0.3.0 Oracle安装程序或Oracle本身的包装/配置出现了问题。所有的帖子都是一样的。
发布于 2013-10-20 10:01:43
解决办法是:
1) Go to the REGISTRY (run regedit)
2) Find HKEY_LOCAL_MACHINE/Software/ORACLE
3) Change NLS_LANG我把它换成了
AMERICAN_AMERICA.AR8MSWIN1256不要忘记,您必须更改第2部分中的所有NLS_LANG,现在您可以登录到数据库并对其进行测试。
https://stackoverflow.com/questions/19459514
复制相似问题