这是什么可以被认为是一个错误的组合 - 但实际上可能是至关重要的到Oracle如何使用nlssort - 以及您的客户端如何处理字符串。在SQL Developer中,例如,当它作为语句或脚本时,这似乎按预期工作,但我无法从工作表或查询结果网格中复制和粘贴结果。
使用dump()功能,你可以看到,弥补结果的字符:
select dump(utl_raw.cast_to_varchar2((nlssort('"' || CITY_NAME || ', ' || STATE_CODE || '"',
'nls_sort=binary_ai'))) || ' test', 1016) as dumped_result
from (select 'New York' as CITY_NAME, 'NY' as STATE_CODE from dual);
DUMPED_RESULT
----------------------------------------------------------------------------------------------------
Typ=1 Len=20 CharacterSet=AL32UTF8: 22,6e,65,77,20,79,6f,72,6b,2c,20,6e,79,22,0,20,74,65,73,74
^
我标志着^标记来突出显示在输出0,投nlssort()结果与之间您正在添加test。还是有点更清楚而不串联:
select dump(utl_raw.cast_to_varchar2(nlssort('ABC')), 1016) as dumped_result</