ORALCE 9iselect '中' chn from dual order by nlssort(chn,'nls_sort=SCHINESE_PINYIN_M');提示
ORA-12702: SQL 函数中使用了无效的 NLS 参数字符串但是select '中' chn from dual order by nlssort(chn,'nls_sort=CANADIAN_M');这句就没问题,我想按拼音排序,请教DX们这怎么回事?
select * from NLS_SESSION_PARAMETERS;
 
PARAMETER                                                    VALUE
------------------------------------------------------------ --------------------------------------------------------------------------------
NLS_LANGUAGE                                                 SIMPLIFIED CHINESE
NLS_TERRITORY                                                CHINA
NLS_CURRENCY                                                 RMB
NLS_ISO_CURRENCY                                             CHINA
NLS_NUMERIC_CHARACTERS                                       .,
NLS_CALENDAR                                                 GREGORIAN
NLS_DATE_FORMAT                                              DD-MON-RR
NLS_DATE_LANGUAGE                                            SIMPLIFIED CHINESE
NLS_SORT                                                     BINARY
NLS_TIME_FORMAT                                              HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT                                         DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT                                           HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT                                      DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY                                            RMB
NLS_COMP                                                     BINARY
NLS_LENGTH_SEMANTICS                                         BYTE
NLS_NCHAR_CONV_EXCP                                          FALSE
 
17 rows selected

解决方案 »

  1.   

    在我的库上可以执行,:)
    Connected to Oracle9i Enterprise Edition Release 9.2.0.8.0 
    Connected as SYSSQL> select   '中'   chn   from   dual   order   by   nlssort(chn,'nls_sort=SCHINESE_PINYIN_M');CHN
    ---
    中SQL> 
      

  2.   

    ”使用了无效的NLS 参数字符串“说明你的数据库中不支持“SCHINESE_PINYIN_M”查看可以支持的值:
    SELECT * FROM v$nls_valid_values WHERE parameter='SORT';